mirror of
https://github.com/ProudMuBai/GoFilm.git
synced 2026-02-23 11:35:15 +08:00
add BAM
This commit is contained in:
70
server/model/system/Crontab.go
Normal file
70
server/model/system/Crontab.go
Normal file
@@ -0,0 +1,70 @@
|
||||
package system
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"github.com/robfig/cron/v3"
|
||||
"server/config"
|
||||
"server/plugin/db"
|
||||
)
|
||||
|
||||
/*
|
||||
定时任务持久化
|
||||
*/
|
||||
|
||||
// FilmCollectTask 影视采集任务
|
||||
type FilmCollectTask struct {
|
||||
Id string `json:"id"` // 唯一标识uid
|
||||
Ids []string `json:"ids"` // 采集站id列表
|
||||
Cid cron.EntryID `json:"cid"` // 定时任务Id
|
||||
Time int `json:"time"` // 采集时长, 最新x小时更新的内容
|
||||
Spec string `json:"spec"` // 执行周期 cron表达式
|
||||
Model int `json:"model"` // 任务类型, 0 - 自动更新已启用站点 || 1 - 更新Ids中的资源站数据
|
||||
State bool `json:"state"` // 状态 开启 | 禁用
|
||||
Remark string `json:"remark"` // 任务备注信息
|
||||
}
|
||||
|
||||
// SaveFilmTask 保存影视采集任务信息 {EntryId:FilmCollectTask}
|
||||
func SaveFilmTask(t FilmCollectTask) {
|
||||
data, _ := json.Marshal(t)
|
||||
db.Rdb.HSet(db.Cxt, config.FilmCrontabKey, t.Id, data)
|
||||
}
|
||||
|
||||
// GetAllFilmTask 获取所有的任务信息
|
||||
func GetAllFilmTask() []FilmCollectTask {
|
||||
var tl []FilmCollectTask
|
||||
tMap := db.Rdb.HGetAll(db.Cxt, config.FilmCrontabKey).Val()
|
||||
for _, v := range tMap {
|
||||
var t = FilmCollectTask{}
|
||||
_ = json.Unmarshal([]byte(v), &t)
|
||||
tl = append(tl, t)
|
||||
}
|
||||
return tl
|
||||
}
|
||||
|
||||
// GetFilmTaskById 通过Id获取当前任务信息
|
||||
func GetFilmTaskById(id string) (FilmCollectTask, error) {
|
||||
var ft = FilmCollectTask{}
|
||||
// 如果Id对应的task不存在则返回错误信息
|
||||
if !db.Rdb.HExists(db.Cxt, config.FilmCrontabKey, id).Val() {
|
||||
return ft, errors.New(" The task does not exist ")
|
||||
}
|
||||
data := db.Rdb.HGet(db.Cxt, config.FilmCrontabKey, id).Val()
|
||||
err := json.Unmarshal([]byte(data), &ft)
|
||||
return ft, err
|
||||
}
|
||||
|
||||
// UpdateFilmTask 更新定时任务信息(直接覆盖Id对应的定时任务信息) -- 后续待调整
|
||||
func UpdateFilmTask(t FilmCollectTask) {
|
||||
SaveFilmTask(t)
|
||||
}
|
||||
|
||||
// DelFilmTask 通过Id删除对应的定时任务信息
|
||||
func DelFilmTask(id string) {
|
||||
db.Rdb.HDel(db.Cxt, config.FilmCrontabKey, id)
|
||||
}
|
||||
|
||||
// ExistTask 是否存在定时任务相关信息
|
||||
func ExistTask() bool {
|
||||
return db.Rdb.Exists(db.Cxt, config.FilmCrontabKey).Val() == 1
|
||||
}
|
||||
Reference in New Issue
Block a user