0

这是我的代码:

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;
     })
  });
});

我期望的是消息在一秒钟内过期。当我在几秒钟内运行我的消费者时,消息就到了!

阅读文档,我知道我只需在选项中添加参数并messageTtl以毫秒为单位传递。

我做错了什么?

4

1 回答 1

1

您必须在参数中将其作为“x-message-ttl”传递。否则,您可以在选项中传递“messageTtl”。您可以在他们的 github 库中查看它。 https://github.com/squaremo/amqp.node/blob/master/lib/api_args.js

于 2019-01-22T05:43:49.397 回答