2 Star 0 Fork 0

hero/momo

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
schedule.go 1.20 KB
一键复制 编辑 原始数据 按行查看 历史
hero 提交于 2024-08-08 17:15 . add:自定义时间类型
package service
import (
"context"
"fmt"
"strconv"
"sync"
"gitee.com/linqwen/momo/sys/job/model"
"gitee.com/linqwen/momo/app"
)
type scheduleService struct {
app.BaseService[model.ScheduleEntity]
}
func NewScheduleService() *scheduleService {
return &scheduleService{BaseService: *app.NewBaseService(JobDb, model.ScheduleEntity{})}
}
var (
taskCancelFuncs = make(map[int64]context.CancelFunc)
taskLock sync.Mutex
)
func (bs scheduleService) RunTask(id string) error {
// var schedule model.ScheduleEntity
// if err := JobDb.Preload("Task").First(&schedule, id).Error; err != nil {
// return err
// }
// ctx, cancel := context.WithCancel(context.Background())
// taskLock.Lock()
// taskCancelFuncs[schedule.Id] = cancel
// taskLock.Unlock()
// if err := schedule.RunTask(ctx); err != nil {
// return err
// }
return nil
}
func (bs scheduleService) EndTask(id string) error {
taskId, err := strconv.ParseInt(id, 16, 64)
if err != nil {
fmt.Printf("转换出错: %v\n", err)
return err
}
taskLock.Lock()
if cancel, ok := taskCancelFuncs[taskId]; ok {
cancel()
delete(taskCancelFuncs, taskId)
taskLock.Unlock()
return nil
} else {
return fmt.Errorf("endtask error")
}
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/linqwen/momo.git
git@gitee.com:linqwen/momo.git
linqwen
momo
momo
v1.7.4

搜索帮助

23e8dbc6 1850385 7e0993f3 1850385