Batchノードを使う(その2)
ここのところずっとNode-REDのサンプルを見ながら各ノードの使い方を確認しています。頭出しの記事はこちらをご確認ください。今回はBatchノードの第2回目です。
確認するサンプルは、「読み込み > サンプル > flows > node-red > sequence > batch > 02 - Time based group mode」です。時間ベースでメッセージをグループ化できるみたいです。
時間ベースでメッセージをグループ化する
ざっくりとした流れは以下のとおりです。
- Functionノードがバラバラのメッセージを送信する
- Delayノードが流量制限を行い、1秒1メッセージ流すようにする
- Batchノードが指定した時間間隔ごとにグループ化(partsプロパティに自動生成した値を設定)する
- Joinノードが同じpartsプロパティの値ごとに1つのメッセージにまとめる
上流から順にノードの設定を見ていきます。入力データを生成するFunctionノードでは、0〜29の値をPayloadに持つメッセージを送信しています。ここは前回の記事と同じです。
続いて、Delayノードで流量制限を行います。
続いて、Batchノードで指定した時間間隔ごとにグループ化します。
続いて、Joinノードで複数メッセージをまとめます。動作が自動なので、partsプロパティの値ごとにまとめます。ここも前回の記事と同じです。
実行すると、以下のログが出力されます。画面キャプチャからは読み取れませんが、ログは約5秒毎に出力されます。流量制限したメッセージがグループ化されるのに時間がかかるんでしょうね。
まとめ
まとめます。
- 複数メッセージを時間ベースでグループ化できます
Batchノードシリーズはもう少し続きます。
コメント
コメントを投稿