mirror of
https://github.com/Buriburizaem0n/nezha_domains.git
synced 2026-02-04 04:30:05 +00:00
✨ [dashboard v0.3.9] 手动即时触发计划任务
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package dao
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"sort"
|
||||
"sync"
|
||||
|
||||
@@ -9,32 +10,27 @@ import (
|
||||
"gorm.io/gorm"
|
||||
|
||||
"github.com/naiba/nezha/model"
|
||||
pb "github.com/naiba/nezha/proto"
|
||||
)
|
||||
|
||||
var Version = "v0.3.9"
|
||||
|
||||
const (
|
||||
SnapshotDelay = 3
|
||||
ReportDelay = 2
|
||||
)
|
||||
|
||||
var Conf *model.Config
|
||||
var (
|
||||
Conf *model.Config
|
||||
Cache *cache.Cache
|
||||
DB *gorm.DB
|
||||
|
||||
var Cache *cache.Cache
|
||||
ServerList map[uint64]*model.Server
|
||||
ServerLock sync.RWMutex
|
||||
|
||||
var DB *gorm.DB
|
||||
|
||||
// 服务器监控、状态相关
|
||||
var ServerList map[uint64]*model.Server
|
||||
var ServerLock sync.RWMutex
|
||||
|
||||
var SortedServerList []*model.Server
|
||||
var SortedServerLock sync.RWMutex
|
||||
|
||||
// 计划任务相关
|
||||
var CronLock sync.RWMutex
|
||||
var Crons map[uint64]*model.Cron
|
||||
var Cron *cron.Cron
|
||||
|
||||
var Version = "v0.3.8"
|
||||
SortedServerList []*model.Server
|
||||
SortedServerLock sync.RWMutex
|
||||
)
|
||||
|
||||
func ReSortServer() {
|
||||
ServerLock.RLock()
|
||||
@@ -54,3 +50,25 @@ func ReSortServer() {
|
||||
return SortedServerList[i].DisplayIndex > SortedServerList[j].DisplayIndex
|
||||
})
|
||||
}
|
||||
|
||||
// =============== Cron Mixin ===============
|
||||
|
||||
var CronLock sync.RWMutex
|
||||
var Crons map[uint64]*model.Cron
|
||||
var Cron *cron.Cron
|
||||
|
||||
func CronTrigger(c *model.Cron) {
|
||||
ServerLock.RLock()
|
||||
defer ServerLock.RUnlock()
|
||||
for j := 0; j < len(c.Servers); j++ {
|
||||
if ServerList[c.Servers[j]].TaskStream != nil {
|
||||
ServerList[c.Servers[j]].TaskStream.Send(&pb.Task{
|
||||
Id: c.ID,
|
||||
Data: c.Command,
|
||||
Type: model.TaskTypeCommand,
|
||||
})
|
||||
} else {
|
||||
SendNotification(fmt.Sprintf("计划任务:%s,服务器:%d 离线,无法执行。", c.Name, c.Servers[j]), false)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user