这是我的代码:
const amqp = require('amqplib');
amqp.connect().then((conn) => {
var ok = conn.createChannel();
ok = ok.then((ch) => {
ch.assertQueue('myFirstQueue', {
arguments: {
messageTtl: 1000
}
})
.then(response => {
let q = response;
let msg = 'hello';
let message = new Buffer(JSON.stringify(msg).toString('base64'));
ch.sendToQueue(q.queue, message);
return ok;
})
.catch(error => {
return error;
})
});
});
我期望消息会在一秒钟后到期。当我在几秒钟内运行我的消费者时,消息就会到来!
阅读documentation,我明白我只需在选项中添加参数并以毫秒为单位传递messageTtl
。
我做错了什么?
答案 0 :(得分:1)
您必须在参数中将其作为“ x-message-ttl”传递。否则,您可以在选项中传递“ messageTtl”。 您可以在github的库中检查它。 https://github.com/squaremo/amqp.node/blob/master/lib/api_args.js