下面是我对RSMQ worker的实现
app.queueListener.smsWorker = new RSMQWorker(messagingConfig.queues.sms.queueName, {
rsmq,
"queueName": "sms",
"visibilityTimeout": 60,
"sendDelay": 1,
"maxReceiveCount": 2
});
app.queueListener.smsWorker.on('message', function (message, next, id) {
message = JSON.parse(message);
app.models.MessagingLog.updateConsumptionDate(messagingConfig.queues.sms.queueName, id);
app.models.AppSMS.sendSMS(message.type, message.mobileNumber, message.content, message.appUserId)
.then(function () {
app.models.MessagingLog.updateProcessedDate(messagingConfig.queues.sms.queueName, id);
next();
})
.catch(function (error) {
console.error(error);
return next();
});
});
app.queueListener.smsWorker.on('error', function (error, message) {
console.error('ERROR', error, message.id);
});
app.queueListener.smsWorker.on('exceeded', function (message) {
console.log('EXCEEDED', message.id);
});
app.queueListener.smsWorker.on('timeout', function (message) {
console.log('TIMEOUT', message.id, message.rc);
});
当我在队列中发送消息时,它不会被删除..
例如,如果我发送短信,则它发送短信10次..
我已将maxRecieveCount配置为2,而不是默认值10,但仍然发送短信10次,直到被超过为止。