gpt4 book ai didi

node.js - 简单地将许多消息发布到 Rabbitmq

转载 作者:太空宇宙 更新时间:2023-11-04 01:01:50 25 4
gpt4 key购买 nike

我想连续多次发送相同的消息,但我需要使用循环。但是,当我使用循环时,不会发送任何消息。我在 Nodejs 中使用 amqp。

这是发送单个消息的工作代码。我该怎么办才能发送很多。我已经尝试过在 connection.publish 部分包裹一个 while 循环,但没有发送任何内容。

var amqp = require('amqp');
var connection = amqp.createConnection({url: "amqp://tester:tstpsswrd@10.4.52.115:5672"});

connection.on('ready', function () {
connection.queue('my-queue', function (q) {
connection.publish('my-queue', 'hi');
});
});

我确信我在这里做了一些愚蠢的错误,或者可能错过了一些东西。第一次使用rabbitmq。

更新,循环示例

var amqp = require('amqp');
var connection = amqp.createConnection({url: "amqp://tester:tstpsswrd@10.4.52.115:5672"});

connection.on('ready', function () {
connection.queue('my-queue', function (q) {
while(true){
connection.publish('my-queue', 'hi');
}
});
});

最佳答案

在实际场景中,您不能也不应该有无限循环来写入消息代理。必须有一些基于事件的事物或正确定义的数字。尝试这段代码,您可以根据您的要求使用 for 循环:

var amqp = require('amqp');
var connection = amqp.createConnection({ host: 'localhost', port: 5672});


connection.on('ready', function () {
for(var i=0; i<1000; i++){
var status = writeOnQueue("testing the queue"+i);
}
});

function writeOnQueue(xml){
var msg = xml;
console.log(msg);
try{
connection.exchange('test-exchange', {confirm: true},function(exchange) {
publish = exchange.publish('my-queue',msg, { mandatory: false });
console.log('sent the message success test-exchange');
return true;
});
}
catch(e){
console.log('Some error occured.'+ e);
}
}

关于node.js - 简单地将许多消息发布到 Rabbitmq,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26332359/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com