Add sync driver for queue messages (#3070)

* Add sync driver for queue messages

* rename moduleRef

* use switch instead
This commit is contained in:
Weiko
2023-12-19 13:30:40 +01:00
committed by GitHub
parent fff51a2d91
commit e799c84233
10 changed files with 83 additions and 23 deletions

View File

@ -4,9 +4,11 @@ import {
MessageQueueJob,
MessageQueueJobData,
} from 'src/integrations/message-queue/interfaces/message-queue-job.interface';
import { JobsModule } from 'src/integrations/message-queue/jobs.module';
import { MessageQueue } from 'src/integrations/message-queue/message-queue.constants';
import { MessageQueueService } from 'src/integrations/message-queue/services/message-queue.service';
import { getJobClassName } from 'src/integrations/message-queue/utils/get-job-class-name.util';
import { QueueWorkerModule } from 'src/queue-worker.module';
async function bootstrap() {
@ -18,7 +20,7 @@ async function bootstrap() {
await messageQueueService.work(async (jobData: MessageQueueJobData) => {
const jobClassName = getJobClassName(jobData.name);
const job: MessageQueueJob<MessageQueueJobData> = app
.select(QueueWorkerModule)
.select(JobsModule)
.get(jobClassName, { strict: true });
await job.handle(jobData.data);
@ -27,8 +29,3 @@ async function bootstrap() {
}
bootstrap();
function getJobClassName(name: string): string {
const [, jobName] = name.split('.') ?? [];
return jobName ?? name;
}