Commit 3f0370ec authored by 贾浩@五瓣科技's avatar 贾浩@五瓣科技

add task pass option

parent 6f3e597c
......@@ -80,6 +80,7 @@ type Task struct {
Start int `gorm:"type:int;not null;comment:任务开始时间"`
End int `gorm:"type:int;index;not null;comment:任务结束时间"`
Daily bool `gorm:"type:bool;not null;comment:是否是每日任务"`
Pass bool `gorm:"type:bool;not null;comment:是否跳过检查"`
TwitterTaskEndAt sql.NullTime `gorm:"index;comment:推特可用,推特任务中心已停止"`
TelegramActiveThreshold int `gorm:"type:int;not null;comment:telegram群活跃阈值"`
Enable bool `gorm:"type:bool;not null;comment:是否启用"`
......
......@@ -12,29 +12,26 @@ func (s *Sync) ProcessTasks() {
ticker := time.NewTicker(time.Second)
defer ticker.Stop()
log.Info("start sync task")
for {
select {
case <-ticker.C:
tasks, err := s.d.GetUnprocessedTasks()
for range ticker.C {
tasks, err := s.d.GetUnprocessedTasks()
if err != nil {
log.WithError(err).Error("get unprocessed tasks error")
return
}
for _, task := range tasks {
status := constant.TaskHistoryStatusSuccess
ok, err := s.SyncTask(task.TaskId, task.UserId)
if err != nil {
log.WithError(err).Error("get unprocessed tasks error")
return
log.WithError(err).Error("sync task error")
}
for _, task := range tasks {
status := constant.TaskHistoryStatusSuccess
ok, err := s.SyncTask(task.TaskId, task.UserId)
if err != nil {
log.WithError(err).Error("sync task error")
}
if !ok {
status = constant.TaskHistoryStatusRetry
}
log.WithFields(log.Fields{"task_id": task.Id, "error": err, "status": status}).Info("sync task")
err = s.d.UpdateTaskHistory(task.Id, status)
if err != nil {
log.WithError(err).Error("update task history error")
}
if !ok {
status = constant.TaskHistoryStatusRetry
}
log.WithFields(log.Fields{"task_id": task.Id, "error": err, "status": status}).Info("sync task")
err = s.d.UpdateTaskHistory(task.Id, status)
if err != nil {
log.WithError(err).Error("update task history error")
}
}
}
......@@ -51,6 +48,11 @@ func (s *Sync) SyncTask(taskId int, userId string) (ok bool, err error) {
return
}
if task.Pass {
log.WithFields(log.Fields{"task_id": taskId, "user_id": userId}).Info("task pass")
return true, nil
}
switch task.Platform {
case constant.TaskPlatformTelegram:
telegramUserId, err := s.d.GetProviderId(userId, constant.TaskPlatformTelegram)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment