2

RabbitMQ を使用してメッセージの配列を送信するにはどうすればよいですか? すべてのメッセージを個別に送信したくありません。

例えば:

ch.publish(ex, '', new Buffer('hello world'));

どうすれば次のようなものを使用できますか:

ch.publish(ex, '', new Buffer([msg1, msg2, msg3...]));

ありがとうございました!

4

3 に答える 3

2

次のように JSON を渡すことができます。

var json = JSON.stringify(arr);
ch.publish(ex, '', new Buffer(json));

次に、コンシューマーは JSON を解析します。

于 2019-01-21T04:24:09.563 に答える
1

RabbitMQ を使用してメッセージの配列を送信するにはどうすればよいですか? すべてのメッセージを個別に送信したくありません。

できません。各メッセージは個別に送信する必要があります。

やりたいことをしようとすると、送信したい個々のメッセージがすべて含まれた単一の「メッセージ」になってしまいます。

これを実行できるように見える API を作成したい場合は、メッセージの配列を受け取り、それらをループして一度に 1 つずつ送信する関数を作成するだけです。

(nodejs/amqplib)

function publishAll(ex, ...messages){
  return messages.map((msg) => {
    ch.publish(ex, '', msg);
  });
}

var pub = publishAll("my.exchange", [msg1, msg2, msg3]);
pub.then(() => {
  // run code after they are all published
});
于 2015-09-15T13:23:44.100 に答える
0

@derick-baileyが言ったことに加えて、各メッセージで複数の変数を送信する必要がある場合は、常に変数をカンマで区切った文字列を作成できます。または、テキストでコンマを使用する場合は、他の記号を使用できます。

于 2018-06-12T21:39:39.213 に答える