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

ここのところずっとNode-REDのサンプルを見ながら各ノードの使い方を確認しています。頭出しの記事はこちらをご確認ください。今回はDelayノードを使ってみます。要はJavaScriptで言うところの「setTimeout()」みたいなものかと思います。

指定した時間メッセージを遅延させる

最初のサンプルは「flows > node-red > function > delay > 01 - Delay message」です。フローを実行すると、delayノードで遅延が発生して、時間差でログが出力されます。


Delayノードのプロパティを見ると、指定した時間(3秒)だけメッセージが遅延するようです。ここは特に解説の必要はないと思います。


msgオブジェクトのプロパティ値により遅延させる

次のサンプルは「flows > node-red > function > delay > 02 - Delay message by message property」です。先程と同じくDelayノードのプロパティを見てみます。ポイントは以下の2点です。
  • msg.delay値により遅延時間が決定される
  • 時間」の指定は無視される


Injectノードでは「msg.delay」に遅延時間1000(ミリ秒)が設定されています。実行すると1秒遅延します。「msg.delay」に10000(ミリ秒)を設定すると10秒遅延します。サンプル01では遅延時間がDelayノードの設定で固定されていたのが、サンプル02ではmsg.delayの値に応じて遅延時間が変更可能になっています。


まとめ

Delayノードを使うことによりフローを遅延させることができます。以下、2種類の挙動を実現できます。
  • Delayノードのプロパティに設定した値で遅延時間を固定する
  • msg.delayの値に応じて遅延時間を可変にする
次回もDelayノードを見ていきます。

コメント

このブログの人気の投稿

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

Execノードを使う

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