This commit is contained in:
苏尹岚
2020-12-17 16:43:59 +08:00
parent af30593ce4
commit 3e41f86386
3 changed files with 99 additions and 16 deletions

View File

@@ -1081,21 +1081,63 @@ func ResetJobTimers() {
}
func CreateJobSpan(ctx *jxcontext.Context, jobIDs []int, endAt string, span int) (err error) {
// var (
// db = dao.GetDB()
// )
// task := tasksch.NewParallelTask("CreateJobSpan", tasksch.NewParallelConfig().SetIsContinueWhenError(true), jxcontext.AdminCtx,
// func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
// jobID := batchItemList[0].(int)
// endAt2 := utils.Str2Time(endAt)
// jonSpan := &model.JobSpan{
// JobID: jobID,
// EndAt: &endAt2,
// SpanType: span,
// }
// return retVal, err
// }, jobIDs)
// tasksch.HandleTask(task, nil, true).Run()
// task.GetID()
var (
db = dao.GetDB()
maxSeq = 0
)
if span == model.JobSpanTop {
maxSeq, err = dao.GetMaxJobTopSeq(db)
} else {
maxSeq, err = dao.GetMaxJobRecmdSeq(db)
}
for k, jobID := range jobIDs {
endAt2 := utils.Str2Time(endAt)
jonSpan := &model.JobSpan{
JobID: jobID,
EndAt: &endAt2,
SpanType: span,
}
if err = dao.CreateEntity(db, jonSpan); err == nil {
job := &model.Job{}
job.ID = jobID
if err = dao.GetEntity(db, job); err == nil {
if span == model.JobSpanTop {
job.TopSeq = k + 1 + maxSeq
job.JobSpanTop = 1
dao.UpdateEntity(db, job, "TopSeq", "JobSpanTop")
} else {
job.RecmdSeq = k + 1 + maxSeq
job.JobSpanRecmd = 1
dao.UpdateEntity(db, job, "RecmdSeq", "JobSpanRecmd")
}
}
}
}
return err
}
func RefreshJobSpan(ctx *jxcontext.Context) (err error) {
var (
db = dao.GetDB()
)
jobSpans, err := dao.GetJobSpans(db)
task := tasksch.NewParallelTask("RefreshJobSpan", tasksch.NewParallelConfig().SetIsContinueWhenError(true), jxcontext.AdminCtx,
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
jobSpan := batchItemList[0].(*model.JobSpan)
if time.Now().Sub(*jobSpan.EndAt) >= 0 {
job := &model.Job{}
job.ID = jobSpan.JobID
if err = dao.GetEntity(db, job); err == nil {
if jobSpan.SpanType == model.JobSpanTop {
} else {
}
}
}
return retVal, err
}, jobSpans)
tasksch.HandleTask(task, nil, true).Run()
task.GetID()
return err
}

View File

@@ -38,6 +38,8 @@ func doDailyWork() {
globals.SugarLogger.Debug("doDailyWork")
//刷新任务过期状态
cms.RefreshJobStatus(jxcontext.AdminCtx)
//刷新任务标签状态
cms.RefreshJobSpan(jxcontext.AdminCtx)
//刷新用户会员时间
cms.RefreshUserMemberStatus(jxcontext.AdminCtx)
//删除聊天记录

View File

@@ -515,3 +515,42 @@ func GetStationInfoList(db *DaoDB, stationName string, cityCode int, lat, lng fl
}
return pagedInfo, err
}
func GetMaxJobTopSeq(db *DaoDB) (maxSeq int, err error) {
Seq := &struct {
TopSeq int
}{}
sql := `
SELECT MAX(top_seq) top_seq FROM job WHERE deleted_at = ? AND status = ? AND job_span_top = ?
`
sqlParams := []interface{}{utils.DefaultTimeValue, model.JobStatusDoing, 1}
if err = GetRow(db, &Seq, sql, sqlParams); err == nil {
return Seq.TopSeq, err
}
return maxSeq, err
}
func GetMaxJobRecmdSeq(db *DaoDB) (maxSeq int, err error) {
Seq := &struct {
RecmdSeq int
}{}
sql := `
SELECT MAX(recmd_seq) recmd_seq FROM job WHERE deleted_at = ? AND status = ? AND job_span_recmd = ?
`
sqlParams := []interface{}{utils.DefaultTimeValue, model.JobStatusDoing, 1}
if err = GetRow(db, &Seq, sql, sqlParams); err == nil {
return Seq.RecmdSeq, err
}
return maxSeq, err
}
func GetJobSpans(db *DaoDB) (jobSpans []*model.JobSpan, err error) {
sql := `
SELECT *
FROM job_span
WHERE deleted_at = ?
`
sqlParams := []interface{}{utils.DefaultTimeValue}
err = GetRows(db, &jobSpans, sql, sqlParams)
return jobSpans, err
}