refactor(pipeline-tasks-runner): rabbitmq

This commit is contained in:
Ivan Li
2021-05-23 17:51:14 +08:00
parent 4041a6fd2a
commit b3a2b11db9
12 changed files with 982 additions and 23 deletions

View File

@ -11,6 +11,10 @@ import { PipelineTaskConsumer } from './pipeline-task.consumer';
import { PIPELINE_TASK_QUEUE } from './pipeline-tasks.constants';
import { PipelineTaskLogsService } from './pipeline-task-logs.service';
import { PubSubModule } from '../commons/pub-sub/pub-sub.module';
import { RabbitMQModule } from '@golevelup/nestjs-rabbitmq';
import { ConfigModule, ConfigService } from '@nestjs/config';
import { PipelineTaskRunner } from './pipeline-task.runner';
import { spawn } from 'child_process';
@Module({
imports: [
@ -21,12 +25,48 @@ import { PubSubModule } from '../commons/pub-sub/pub-sub.module';
PubSubModule.forFeature(),
RedisModule,
ReposModule,
RabbitMQModule.forRootAsync(RabbitMQModule, {
imports: [ConfigModule],
useFactory: (configService: ConfigService) => ({
uri: configService.get<string>('db.rabbitmq.uri'),
exchanges: [
{
name: 'new-pipeline-task',
type: 'fanout',
options: {
durable: true,
},
},
{
name: 'stop-pipeline-task',
type: 'fanout',
options: {
durable: true,
},
},
{
name: 'update-pipeline-task',
type: 'fanout',
options: {
durable: false,
},
},
],
}),
inject: [ConfigService],
}),
],
providers: [
PipelineTasksService,
PipelineTasksResolver,
PipelineTaskConsumer,
PipelineTaskLogsService,
PipelineTaskRunner,
{
provide: 'spawn',
useValue: spawn,
},
],
exports: [PipelineTasksService],
})