egg-mq-http-sdk

[![NPM version][npm-image]][npm-url] [![build status][travis-image]][travis-url] [![Test coverage][codecov-image]][codecov-url] [![David deps][david-image]][david-url] [![Known Vulnerabilities][snyk-image]][snyk-url] [![npm download][download-image]][down

Usage no npm install needed!

<script type="module">
  import eggMqHttpSdk from 'https://cdn.skypack.dev/egg-mq-http-sdk';
</script>

README

egg-mq-http-sdk

NPM version build status Test coverage David deps Known Vulnerabilities npm download

Install

$ npm i egg-mq-http-sdk --save

Usage

// {app_root}/config/plugin.js
exports.mqHttpSdk = {
  enable: true,
  package: 'egg-mq-http-sdk',
};

Configuration

// {app_root}/config/config.default.js
exports.mqHttpSdk = {
  endpoint: '',
  accessKeyId: '',
  accessKeySecret: '',
  securityToken?: '',
  producers?: [{
      instanceId: '',
      topic: '',
      groupId?: '', 
  }],
  consumers?: [{
      instanceId: '',
      topic: '',
      groupId?: '',
      messageTags?: [''], 
  }],
  pollingInterval?: 3000, // 轮询间隔 ms 默认为0
};

Example

import { MQClient, createMessageProperties, ConsumeMessageResponse } from 'egg-mq-http-sdk';

const client: MQClient = (this.app as any).mqClient;

const producer = client.getProducer(instanceId, topic); 
const msgProps = createMessageProperties();
msgProps.messageKey(message_key);
await producer.publishMessage(body, tag, msgProps);

const transProducer = client.getTransProducer(instanceId, topic, groupId);


app.ts:
import { consume, transProduce } from 'egg-mq-http-sdk';

app.beforeStart(async () => {
    consume(app, 'messageTag', async (ctx, consumer, message) => {
      // 注册消费消息方法
    });
    transProduce(app, 'messageTag', async (ctx, transProducer, message) => {
      // 注册回查半消息方法
    })
});

Questions & Suggestions

Please open an issue here.

License

MIT