wangrong
2022-03-16 a45591fc22c088fe45fafb651b0c4575cc5c2f0f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import { App, Inject, Provide } from '@midwayjs/decorator';
import { IMidwayWebApplication } from '@midwayjs/web';
import { BaseCoolQueue, Queue } from '@cool-midway/queue';
import { TaskInfoService } from '../service/info';
import { Job } from 'bullmq';
 
/**
 * 任务
 */
@Queue()
@Provide()
export abstract class TaskInfoQueue extends BaseCoolQueue {
  @App()
  app: IMidwayWebApplication;
 
  @Inject()
  taskInfoService: TaskInfoService;
 
  async data(job: Job, done: any): Promise<void> {
    try {
      const result = await this.taskInfoService.invokeService(job.data.service);
      this.taskInfoService.record(job.data, 1, JSON.stringify(result));
    } catch (error) {
      this.taskInfoService.record(job.data, 0, error.message);
    }
    if (!job.data.isOnce) {
      this.taskInfoService.updateNextRunTime(job.data.id);
      this.taskInfoService.updateStatus(job.data.id);
    }
    done();
  }
}