我正在做一个需要使用一些 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);
});
});
}
在上面的代码中,与标头相关的数据会去哪里?