ここのところずっと Node-RED のサンプルを見ながら各ノードの使い方を確認しています。 頭出しの記事はこちら をご確認ください。今回からTriggerノードシリーズです。 間隔を開けて2つの値を出力する 今回確認するサンプルは「 flows > node-red > function > trigger > 01 - Outputs two value with interval 」です。直訳すると間隔をあけて2つの値を出力するようです。Triggerノードのプロパティはこんな感じです。 最初にメッセージを受け取ったタイミングで送信データ「 1 」を出力した後、2秒待機して再送信データ「 0 」を出力するようです。遅延させるという意味では前回紹介したDelayノードと似ていますが、あるメッセージ受信をトリガとして、別のメッセージを送信できるのがこのノードの本質的な機能でしょうか。何に使うことを想定したノードかはわかりませんが、とりあえず挙動は確認できました。 タイムアウト機構を実現する 次に確認するサンプルは「 flows > node-red > function > trigger > 02 - Trigger a flow if a message is not received after defined time 」です。今度は、規定の時間メッセージを受信しなかったらトリガを発動させるパターンです。Triggerノードのプロパティを確認すると、赤枠の部分が先程のサンプルと違っています。 送信データ「 なし 」は最初にメッセージ受信時に出力しないことを意味しています。「 新たなメッセージを受け取った時に遅延を延長 」はメッセージを受信したら再送信データの送信を待機時間分(この例だと5秒間)遅らせることを意味しています。逆の見方をすれば、待機時間内にメッセージを受け取らなかったら再送信データを送信します。 整理すると、 Triggerノードはメッセージを受信すると5秒間待ちます 5秒以内にメッセージを受け取ったら何もしません 5秒を超えてメッセージを受け取らなかったらmsg.payloadに「timeout」の文字列を設定してメッセージを出力します 何か時間のかかる処理を実行して、指定した時間内にその処理が...
コメント
コメントを投稿