私はamqplib
nodejsアプリケーションで使用しています。フロントエンド側で重い処理が行われており、rabbitmq メッセージの受信に遅延が発生しています。でキューを監視しているときにrabbitmqctl list_queues
、処理待ちのメッセージの数が増え続けています。
キューに指定された数のメッセージが待機しているときにメッセージをドロップするようにチャネルをセットアップする方法はありますか?
以下は、チャンネルをセットアップする方法です。
amqp.connect('amqp://localhost')
.then(conn => {
return conn.createChannel();
})
.then(channel => {
channel.assertQueue(q, {durable: false, autoDelete: true});
channel.prefetch(1);
channel.bindQueue(q.queue, topic, 'myroutingkey');
return channel.consume(q, (msg) => {
mycallback(channel, msg);
});
})
.then(() => {})
.catch(err => {});