Batchノードを使う(その2)

 ここのところずっとNode-REDのサンプルを見ながら各ノードの使い方を確認しています。頭出しの記事はこちらをご確認ください。今回はBatchノードの第2回目です。

確認するサンプルは、「読み込み > サンプル > flows > node-red > sequence > batch > 02 - Time based group mode」です。時間ベースでメッセージをグループ化できるみたいです。

時間ベースでメッセージをグループ化する

ざっくりとした流れは以下のとおりです。
  1. Functionノードがバラバラのメッセージを送信する
  2. Delayノードが流量制限を行い、1秒1メッセージ流すようにする
  3. Batchノードが指定した時間間隔ごとにグループ化(partsプロパティに自動生成した値を設定)する
  4. Joinノードが同じpartsプロパティの値ごとに1つのメッセージにまとめる


上流から順にノードの設定を見ていきます。入力データを生成するFunctionノードでは、0〜29の値をPayloadに持つメッセージを送信しています。ここは前回の記事と同じです。


続いて、Delayノードで流量制限を行います。


続いて、Batchノードで指定した時間間隔ごとにグループ化します。


続いて、Joinノードで複数メッセージをまとめます。動作が自動なので、partsプロパティの値ごとにまとめます。ここも前回の記事と同じです。


実行すると、以下のログが出力されます。画面キャプチャからは読み取れませんが、ログは約5秒毎に出力されます。流量制限したメッセージがグループ化されるのに時間がかかるんでしょうね。


まとめ

まとめます。
  • 複数メッセージを時間ベースでグループ化できます
Batchノードシリーズはもう少し続きます。

コメント

このブログの人気の投稿

Execノードを使う

Joinノードを使う(その4)

SendGridのX-SMTPAPIヘッダの使い方(Section Tags、Substitution Tags編)