增加资产存活状态定时检测与创建时检测
This commit is contained in:
parent
ad91406029
commit
c93e03e951
@ -24,6 +24,12 @@ func AssetCreateEndpoint(c echo.Context) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 创建后自动检测资产是否存活
|
||||||
|
go func() {
|
||||||
|
active := utils.Tcping(item.IP, item.Port)
|
||||||
|
model.UpdateAssetActiveById(active, item.ID)
|
||||||
|
}()
|
||||||
|
|
||||||
return Success(c, item)
|
return Success(c, item)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -17,8 +17,8 @@ func RunTicker() {
|
|||||||
|
|
||||||
c := cron.New(cron.WithSeconds()) //精确到秒
|
c := cron.New(cron.WithSeconds()) //精确到秒
|
||||||
|
|
||||||
// 定时任务,每隔一小时删除一次未使用的会话信息
|
|
||||||
_, _ = c.AddFunc("0 0 0/1 * * ?", func() {
|
_, _ = c.AddFunc("0 0 0/1 * * ?", func() {
|
||||||
|
// 定时任务,每隔一小时删除一次未使用的会话信息
|
||||||
sessions, _ := model.FindSessionByStatusIn([]string{model.NoConnect, model.Connecting})
|
sessions, _ := model.FindSessionByStatusIn([]string{model.NoConnect, model.Connecting})
|
||||||
if sessions != nil && len(sessions) > 0 {
|
if sessions != nil && len(sessions) > 0 {
|
||||||
now := time.Now()
|
now := time.Now()
|
||||||
@ -30,6 +30,16 @@ func RunTicker() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// 每隔一小时检测一次资产是否存活
|
||||||
|
assets, _ := model.FindAllAsset()
|
||||||
|
if assets != nil && len(assets) > 0 {
|
||||||
|
for i := range assets {
|
||||||
|
asset := assets[i]
|
||||||
|
active := utils.Tcping(asset.IP, asset.Port)
|
||||||
|
model.UpdateAssetActiveById(active, asset.ID)
|
||||||
|
logrus.Infof("资产「%v」ID「%v」存活状态检测完成,存活「%v」。", asset.Name, asset.ID, active)
|
||||||
|
}
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
// 定时任务,每隔一分钟校验一次运行中的会话信息
|
// 定时任务,每隔一分钟校验一次运行中的会话信息
|
||||||
|
@ -43,6 +43,11 @@ func (r *Asset) TableName() string {
|
|||||||
return "assets"
|
return "assets"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func FindAllAsset() (o []Asset, err error) {
|
||||||
|
err = global.DB.Find(&o).Error
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
func FindAssetByConditions(protocol string, account User) (o []Asset, err error) {
|
func FindAssetByConditions(protocol string, account User) (o []Asset, err error) {
|
||||||
db := global.DB.Table("assets").Select("assets.id,assets.name,assets.ip,assets.port,assets.protocol,assets.active,assets.owner,assets.created, users.nickname as owner_name,COUNT(resources.user_id) as sharer_count").Joins("left join users on assets.owner = users.id").Joins("left join resources on assets.id = resources.resource_id").Group("assets.id")
|
db := global.DB.Table("assets").Select("assets.id,assets.name,assets.ip,assets.port,assets.protocol,assets.active,assets.owner,assets.created, users.nickname as owner_name,COUNT(resources.user_id) as sharer_count").Joins("left join users on assets.owner = users.id").Joins("left join resources on assets.id = resources.resource_id").Group("assets.id")
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user