diff --git a/app/core/woker/AbstractWorker.ts b/app/core/woker/AbstractWorker.ts index 16154e1a..3d826dff 100644 --- a/app/core/woker/AbstractWorker.ts +++ b/app/core/woker/AbstractWorker.ts @@ -17,7 +17,6 @@ export abstract class AbstractWorker { @Inject() private readonly logger: EggLogger; - @Inject() protected worker: Worker; queueKey: string; @@ -30,7 +29,7 @@ export abstract class AbstractWorker { @LifecycleInit() protected async init() { - this.initWorker(); + await this.initWorker(); const queue = this.queueAdapter.initQueue(this.queueKey); this.worker = new Worker( queue.name, @@ -53,6 +52,7 @@ export abstract class AbstractWorker { }, { concurrency: this.config.cnpmcore[this.configKey], + autorun: true, }, ); diff --git a/app/core/woker/HookTriggerWorker.ts b/app/core/woker/HookTriggerWorker.ts index 8e340ed0..7b0fb43d 100644 --- a/app/core/woker/HookTriggerWorker.ts +++ b/app/core/woker/HookTriggerWorker.ts @@ -1,14 +1,15 @@ -import { Inject } from '@eggjs/tegg'; +import { Inject, SingletonProto } from '@eggjs/tegg'; import { TaskType } from '../../common/enum/Task'; import { HookTriggerService } from '../service/HookTriggerService'; import { AbstractWorker } from './AbstractWorker'; +@SingletonProto() export class HookTriggerWorker extends AbstractWorker { @Inject() private readonly hookTriggerService: HookTriggerService; - async initWoker(): Promise { + async initWorker(): Promise { this.queueKey = TaskType.TriggerHook; this.service = this.hookTriggerService; this.configKey = 'triggerHookWorkerMaxConcurrentTasks'; diff --git a/app/infra/MQAdapter.ts b/app/infra/MQAdapter.ts index be93d0db..31ff8cd4 100644 --- a/app/infra/MQAdapter.ts +++ b/app/infra/MQAdapter.ts @@ -18,7 +18,7 @@ export class MQAdapter implements MQAdapterType { @Inject() private readonly redis: Redis; // 由 redis 插件引入 - private queueMap: Record; + private queueMap: Record = {}; private getQueueName(key: string) { return `CNPMCORE_MQ_V1_${key}`; diff --git a/test/core/worker/HookTriggerWorker.test.ts b/test/core/worker/HookTriggerWorker.test.ts index e69de29b..1218aa32 100644 --- a/test/core/worker/HookTriggerWorker.test.ts +++ b/test/core/worker/HookTriggerWorker.test.ts @@ -0,0 +1,19 @@ +import { app } from 'egg-mock/bootstrap'; +import assert from 'assert'; +import { HookTriggerWorker } from '../../../app/core/woker/HookTriggerWorker'; + +describe('test/core/worker/HookTriggerWorker.test.ts', () => { + let hookTriggerWorker: HookTriggerWorker; + + beforeEach(async () => { + hookTriggerWorker = await app.getEggObject(HookTriggerWorker); + }); + + describe('initWorker', () => { + it('should init worker', async () => { + await app.ready(); + assert.equal(hookTriggerWorker.configKey, 'triggerHookWorkerMaxConcurrentTasks'); + assert.equal(hookTriggerWorker.queueKey, 'trigger_hook'); + }); + }); +});