【发布时间】:2020-01-20 17:23:20
【问题描述】:
我正在做一个需要使用一些 rabbitmq 队列的项目。其中一个队列要求消息被延迟以在将来的某个时间处理。我注意到在 rabbmitmq 的文档中有一个名为 RabbitMQ 延迟消息插件的新插件,它似乎允许此功能。过去,对于基于 rabbmitmq 的项目,我使用 seneca-amqp-transport 进行消息添加和处理。问题是我没有看到任何关于 seneca 的文档,也没有找到任何概述如何添加标题属性的示例。
似乎我需要首先确保队列是使用 x-delayed-type 创建的。此外,由于每条消息都添加到队列中,我需要确保在将消息发送到rabbbitmq 之前将x-delay 标头参数添加到消息中。有没有办法通过 seneca-amqp-transport 传递这个参数,x-delay?
这是我当前用于将消息添加到队列的代码:
return new Promise((resolve, reject) => {
const client = require('seneca')()
.use('seneca-amqp-transport')
.client({
type: 'amqp',
pin: 'action:perform_time_consuming_act',
url: process.env.AMQP_SEND_URL
}).ready(() => {
client.act('action:perform_time_consuming_act', {
message: {data: 'this is a test'}
}, (err, res) => {
if (err) {
reject(err);
}
resolve(true);
});
});
}
在上面的代码中,header相关的数据会去哪里?
【问题讨论】: