MQ-IN-ONE,聚合阿里云MNS、腾讯云CMQ等(http)队列服务
npm install mq-in-one
MQ-In-One
MQ-IN-ONE,旨在聚合各家云平台(阿里云MNS、腾讯云CMQ等)的队列服务,
以使用相似的API来调用各家云平台的队列,使得切换不同云平台服务的时候
仅需要更改配置文件而不需要更改代码结构。
shell
npm install mq-in-one
`
$3
`javascript
let MQInOne = require('mq-in-one')
let mq = new MQInOne({
// 不同厂商的MQ需要的配置不同,请查看各MQ的[配置项]
accountId: '',
keyId: '',
keySecret: '',
queueName: '',
mqRegion: '',
}, '')
`
不同厂商的MQ需要的配置不同,请查看各MQ的配置项
#### 获取消息
`javascript
mq.receiveMessage().then(message => {
console.log('Message content:', message.getContent())
})
`
#### 添加消息
`javascript
mq.pushMessage('I am content', {
delaySeconds: 2 // 延迟2秒后可见
}).then(result => {
console.log('Sent message:', result)
})
`
#### 轮询消息
`javascript
mq.pollingMessage(30, (err, message) => {
if (err) {
console.error('Error occurred:', err)
} else {
console.log('Received message', message)
}
})
`
$3
- MQIneOne
- constructor
* config
MQ配置项,不同厂商的MQ需要的配置不同,请查看各MQ的配置项
* mqType
队列类型。现在支持: 阿里云MNS: mns, 腾讯云CMQ cmq
* logger
log4js的logger实例
- pushMessage: Promise\
向队列添加消息
* content: String - 消息内容
* options: Object - 消息更多设置项
* delaySeconds - 需要延时多久该消息才可见(单位:秒)
Supported: mns, cmq
* priority - 消息优先级
Supported: mns
- receiveMessage: Promise\
接收队列中的消息
* pollingWaitSeconds: Number - 请求的长轮询等待时间(单位:秒)
Supported: mns, cmq
- consumeMessage: Promise\
消费(删除)消息
* message: MessageContract - 要删除的信息
- pollingMessage
不断轮询队列,若获取到新消息,则调用传入的handler函数
* handler: function
* err - 轮询错误
* message: MessageContract - 获取到的消息
* callback: function - optional
如果 waitForCallback 为 true 则会通过 callback 参数
传入回调函数,且队列会等待回调后再继续轮询
* waitForCallback: Boolean 获取到消息后是否等待回调函数再继续轮询
- MessageContract
- constructor
* content - 消息内容
* handler - 消息的句柄(用于删除消息)
* options - 消息的附加属性(均为可选)
* messageId - 消息Id,区别于handler
* priority - 消息优先级
* enqueueTime: Date - 消息入队时间
* nextVisibleTime: Date - 消息下次可见时间
* firstDequeueTime: Date - 消息初次出队时间
* dequeueCount: Number - 出队次数(需为Number类型)
* raw - 创建消息的原始信息
- getContent: String
获取消息内容
- getHandler
获取消息句柄
- getMessageId
获取消息Id
- getMsgPriority
获取消息优先度
- getEnqueueTime
获取消息入队时间
- getNextVisibleTime
获取消息下次可见时间
- getDequeueCount
获取消息出队次数
- getRawResponse
获取消息原始信息
$3
- 公共配置项
- queueName 队列名称
- 阿里云MNS
- accountId 阿里云账户ID
- keyId 阿里云 AccessKey ID
- keySecret 阿里云 AccessKey Secret
- mqRegion 队列服务所在地域,例如杭州为hangzhou,具体可查看MNS控制台上的endpoint地址中的地域名
- 腾讯云CMQ
- keyId 腾讯云 Secret Id
- keySecret 腾讯云 Secret Key
- mqRegion` 队列服务所在地域