Delayノードを使う(その3)

ここのところずっとNode-REDのサンプルを見ながら各ノードの使い方を確認しています。頭出しの記事はこちらをご確認ください。今回も前回に引き続きDelayノードを使ってみます。Delayノード編最終回です。

トピックごとに流量を制御する

今回確認するサンプルは「flows > node-red > function > delay > 05 - Limit message rate for each topic」です。トピックごとに流量を制御できるようです。


ざっと各ノードのプロパティを見てみたのですが、内容がよくわからなかったので、以下のようにDebugノードを追加・編集して各ノードが出力するmsgオブジェクトまるごと見てみます。


フローを実行すると瞬間的に10個ログ出力した後、2秒ほどタイムラグがあって、以下のように、topicの値が「apple」「orange」「banana」でそれぞれpayloadの値が「3」のログがまとめて出力されます。


ここでDelayノードのプロパティを確認してみます。動作は「メッセージの流量制限」「msg.topic毎」となっており、流量は「2秒あたり1メッセージ」、「指定した時間後にキューにある全トピックのメッセージを出力」となっています。


どうやら、topicごとに2秒あたり1メッセージの流量制限がかかり、各キューに溜まっているメッセージがまとめて出力されるようです。

一方、「指定した時間後にキューにある先頭のトピックのメッセージを出力」に変更すると、3つのログが2秒毎に出力されます。今度はまとめて出力するのではなく、流量制限がかかるようです。

まとめ

今回の内容をまとめます。
  • トピックごとに流量を制御できる

コメント

このブログの人気の投稿

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

Execノードを使う

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