瀏覽代碼

请求核心服务地址修改;mq消息重试机制;axios处理返回删除(框架自带)

lrf 1 年之前
父節點
當前提交
7c19f75529
共有 4 個文件被更改,包括 16 次插入19 次删除
  1. 1 1
      src/config/config.default.ts
  2. 1 1
      src/config/config.prod.ts
  3. 0 14
      src/configuration.ts
  4. 14 3
      src/service/mq/mqSender.service.ts

+ 1 - 1
src/config/config.default.ts

@@ -55,7 +55,7 @@ export default {
         baseURL: 'https://broadcast.waityou24.cn/wechat/api',
       },
       base: {
-        baseURL: `https://broadcast.waityou24.cn${routePrefix}`,
+        baseURL: 'http://127.0.0.1:12211/dev/point/one/v1/api',
       },
     },
   },

+ 1 - 1
src/config/config.prod.ts

@@ -55,7 +55,7 @@ export default {
         baseURL: 'https://broadcast.waityou24.cn/wechat/api',
       },
       base: {
-        baseURL: `https://broadcast.waityou24.cn${routePrefix}`,
+        baseURL: 'https://broadcast.waityou24.cn/point/one/v1/api',
       },
     },
   },

+ 0 - 14
src/configuration.ts

@@ -11,20 +11,9 @@ import * as jwt from '@midwayjs/jwt';
 import { CheckTokenMiddleware } from './middleware/checkToken.middleware';
 import * as axios from '@midwayjs/axios';
 import { ILifeCycle, IMidwayContainer } from '@midwayjs/core';
-import { FrameworkErrorEnum, ServiceError } from 'free-midway-component';
 import * as rabbitmq from '@midwayjs/rabbitmq';
 import { Context } from '@midwayjs/koa';
 
-const axiosResponse = response => {
-  if (response.status === 200) return response.data;
-  else {
-    console.log(JSON.stringify(response));
-    throw new ServiceError('请求失败', FrameworkErrorEnum.SERVICE_FAULT);
-  }
-};
-const axiosError = error => {
-  return Promise.reject(error);
-};
 
 @Configuration({
   imports: [
@@ -59,8 +48,5 @@ export class ContainerLifeCycle implements ILifeCycle {
     const httpServiceFactory = await container.getAsync(axios.HttpServiceFactory);
     const baseAxios = httpServiceFactory.get('base');
     baseAxios.defaults.headers.common['project'] = 'group-service';
-    baseAxios.interceptors.response.use(axiosResponse, axiosError);
-    const wechatAxios = httpServiceFactory.get('wechat');
-    wechatAxios.interceptors.response.use(axiosResponse, axiosError);
   }
 }

+ 14 - 3
src/service/mq/mqSender.service.ts

@@ -3,6 +3,7 @@ import * as amqp from 'amqp-connection-manager';
 import { Application } from '@midwayjs/koa';
 import _ = require('lodash');
 import * as computedUtil from '../../util/computed';
+import { retryWithAsync } from '@midwayjs/core';
 @Autoload()
 @Provide()
 @Scope(ScopeEnum.Singleton)
@@ -12,7 +13,7 @@ export class MqSender {
 
   private connection: amqp.AmqpConnectionManager;
 
-  private channelWrapper;
+  private channelWrapper: amqp.ChannelWrapper;
 
   @Config('rabbitmq.url')
   mqUrl: object;
@@ -54,13 +55,23 @@ export class MqSender {
     const min = this.timeout;
     // 转换成毫秒
     const ms = computedUtil.multiply(min, 60000);
-    return this.channelWrapper.sendToQueue(q, { ...data, type: 'order' }, { expiration: ms });
+    // return this.channelWrapper.sendToQueue(q, { ...data, type: 'order' }, { expiration: ms });
+    const retryFunc = retryWithAsync(this.sendMessage, 2, { receiver: this, retryInterval: 3000 });
+    const r = await retryFunc(q, data, 'order', ms);
+    return r;
   }
 
   /**团死信消息 */
   async groupMsg(data: object, ms: number) {
     const q = _.get(this.mqConfig, 'q');
-    return this.channelWrapper.sendToQueue(q, { ...data, type: 'group' }, { expiration: ms });
+    // const r = await this.sendMessage(q, data, 'group', ms);
+    const retryFunc = retryWithAsync(this.sendMessage, 2, { receiver: this, retryInterval: 3000 });
+    const r = await retryFunc(q, data, 'group', ms);
+    return r;
+  }
+
+  async sendMessage(q, data, type, ms) {
+    return await this.channelWrapper.sendToQueue(q, { ...data, type }, { expiration: ms });
   }
 
   @Destroy()