lrf 7 月之前
父節點
當前提交
6552fe52fd
共有 3 個文件被更改,包括 46 次插入10 次删除
  1. 18 0
      src/config/config.default.ts
  2. 17 0
      src/controller/mission.controller.ts
  3. 11 10
      src/service/mq.service.ts

+ 18 - 0
src/config/config.default.ts

@@ -11,4 +11,22 @@ export default {
     port: 9702,
   },
   rabbitmq: mqSetting,
+  // 队列&交换机设置
+  mqQe: {
+    system: {
+      queue: 'system',
+      ex: 'systemEx',
+      exType: 'topic',
+    },
+    user: {
+      queue: 'user',
+      ex: 'userEx',
+      exType: 'direct',
+    },
+    mission: {
+      queue: 'mission',
+      ex: 'missionEx',
+      exType: 'direct',
+    },
+  },
 } as MidwayConfig;

+ 17 - 0
src/controller/mission.controller.ts

@@ -0,0 +1,17 @@
+import { Body, Config, Controller, Inject, Post } from '@midwayjs/core';
+import { get } from 'lodash';
+import { MqService } from '../service/mq.service';
+
+@Controller('/mission')
+export class MissionController {
+  @Inject()
+  mqService: MqService;
+  @Config('mqQe.mission')
+  mission: any;
+  @Post('/')
+  async resolve(@Body() body: object) {
+    const id = get(body, 'id');
+    await this.mqService.sendToQueue(this.mission.queue, id);
+    return 'ok';
+  }
+}

+ 11 - 10
src/service/mq.service.ts

@@ -12,22 +12,20 @@ export class MqService {
   @Config('rabbitmq.url')
   mqUrl: string;
 
-  system = {
-    queue: 'system',
-    ex: 'systemEx',
-    exType: 'topic',
-  };
-  user = {
-    queue: 'user',
-    ex: 'userEx',
-    exType: 'direct',
-  };
+  @Config('mqQe.system')
+  system: any;
+  @Config('mqQe.user')
+  user: any;
+  @Config('mqQe.mission')
+  mission: any;
+
   /**
    * 1.建立通道
    * 2.声明交换机
    * 3.声明队列
    * 系统队列:system
    * 用户队列:user
+   * 任务队列:mission
    */
   @Init()
   async connect() {
@@ -53,6 +51,9 @@ export class MqService {
           channel.assertExchange(this.user.ex, this.user.exType, { durable: true }),
           channel.assertQueue(this.user.queue, { durable: true }),
           channel.bindQueue(this.user.queue, this.user.ex, '*'),
+          channel.assertExchange(this.mission.ex, this.mission.exType, { durable: true }),
+          channel.assertQueue(this.mission.queue, { durable: true }),
+          channel.bindQueue(this.mission.queue, this.mission.ex, '*'),
         ]);
       },
     });