我不确定amqplib的函数ch.sendToQueue()是否阻塞。我将其包装在一个Promise中,如下所示,我使用消息“ Success”来解决它,但是我不确定它是否实际上正在等待将消息添加到队列中。
return new Promise(function (resolve, reject) {
amqp.connect(amqp_uri, function (err, conn) {
if (err) reject(err);
conn.createChannel(function (err, ch) {
if (err) reject(err);
var q = 'kds';
var msg = entity_id;
ch.assertQueue(q, { durable: false });
ch.sendToQueue(q, Buffer.from(msg));
console.log(" [x] Sent %s", msg);
});
setTimeout(function () { conn.close(); resolve('Success!') }, 500);
});
});