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ノードを見ていきます。