diff --git a/src/modules/task/queue/task.ts b/src/modules/task/queue/task.ts new file mode 100644 index 0000000..7c2a171 --- /dev/null +++ b/src/modules/task/queue/task.ts @@ -0,0 +1,30 @@ +import { App, Inject } from '@midwayjs/core'; +import { BaseCoolQueue, CoolQueue } from '@cool-midway/task'; +import { TaskBullService } from '../service/bull'; +import { IMidwayApplication } from '@midwayjs/core'; + +/** + * 任务 + */ +@CoolQueue() +export abstract class TaskInfoQueue extends BaseCoolQueue { + @App() + app: IMidwayApplication; + + @Inject() + taskBullService: TaskBullService; + + async data(job, done: any): Promise { + try { + const result = await this.taskBullService.invokeService(job.data.service); + this.taskBullService.record(job.data, 1, JSON.stringify(result)); + } catch (error) { + this.taskBullService.record(job.data, 0, error.message); + } + if (!job.data.isOnce) { + this.taskBullService.updateNextRunTime(job.data.jobId); + this.taskBullService.updateStatus(job.data.id); + } + done(); + } +}