/** * @author songxiwen * @date 2020/12/01 16:28 */ import { OnModuleInit } from '@nestjs/common'; import { MessageQueueClient } from '../common'; export abstract class BaseMessageQueueService implements OnModuleInit { private client = MessageQueueClient.getInstance(); protected abstract subject: string; protected abstract handleSubscribe(message: string): void; private subscribe(subject: string): void { this.client.subscribe(subject, async (message: string) => { await this.handleSubscribe(message); }); } onModuleInit() { this.subscribe(this.subject); } }