Я не уверен, блокирует функция amqplib ch.sendToQueue () или нет. Я завернул его в обещание, как показано ниже, и разрешил его сообщением «Успех», но я не уверен, действительно ли оно ожидает добавления сообщения в очередь или нет.
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);
});
});