2
0
mirror of https://github.com/acepanel/panel.git synced 2026-02-04 14:57:16 +08:00
Files
panel/internal/services/task.go
2024-05-29 19:20:06 +08:00

37 lines
681 B
Go

package services
import (
"github.com/goravel/framework/facades"
"panel/app/jobs"
"panel/app/models"
)
type TaskImpl struct {
}
func NewTaskImpl() *TaskImpl {
return &TaskImpl{}
}
func (r *TaskImpl) Process(taskID uint) {
err := facades.Queue().Job(&jobs.ProcessTask{}, []any{taskID}).Dispatch()
if err != nil {
facades.Log().Info("[面板][TaskService] 运行任务失败: " + err.Error())
return
}
}
func (r *TaskImpl) DispatchWaiting() error {
var tasks []models.Task
if err := facades.Orm().Query().Where("status = ?", models.TaskStatusWaiting).Find(&tasks); err != nil {
return err
}
for _, task := range tasks {
r.Process(task.ID)
}
return nil
}