代码拉取完成,页面将自动刷新
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")
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。