流れを増やす、Fork!

記事作成日:2021/04/17
記事更新日:2021/04/18

Forkブロックとは。

fork
今回は、Fork ブロックを使って、ファイバーを増やしてみます。
私は、Fork ブロックを気に入っています。使い慣れてくると、あなたのやりたいことがこれで叶うかも?しれません。

例えば、複数のURLにほぼ同時にアクセスすることができるようになったり、頭を使いますが、反復実行の簡略化ができます。

特殊な出口 --> "New"

このブロックは流れ(ファイバー) の 制御ブロックの一つです。
このブロックを使うことで、新しい流れを生み出すことが出来ます。

[IN]入口

→ 流れ(ファイバー)の 入口、Fork の機能が実行されます。

[NEW]新しい出口

→ 新しいファイバー が出ていきます。(川が2つに分かれるイメージです。)

[OK]出口

[IN](入口) から入ってきたファイバー が出ていきます。

イメージ図

このフローを実行すると、2秒と4秒が経過するごとに、ログに "...秒経過しました。" と表示されます。
このことから、新しく生成された、[NEW]ファイバーが動作していることが確認できます。


注意点

新しいファイバーを作り出して、同時に処理ができるようになるブロックで、便利ではあるのですが実は、デメリットもあります。
それは、

実行ファイバーの増加に伴うパフォーマンスの低下

余りに多くのファイバーを管理しようとすると、フローの実行速度が低下していきます。
これは、Automate の 「協調性マルチタスク」によるものです。
実は、フロー内で高負荷がかかると、他のフローの実行速度も低下します。(検証済)
とりあえず、高負荷をかけなければ、フローの実行速度が落ちることはありませんし、複雑なフローを実行させることがなければ影響はありません。

まとめ

Forkブロックを使えば、同時に機能を実行したりすることが出来ます。
 そして、実行ファイバーを増やしすぎないこと。

ついでに私の最高記録は 1000+ くらい(多分)。やりすぎると、クラッシュするよ!!


今は、簡単に説明しましたが、またどこかで詳しく説明したいとおもいます。
インデックスに戻る
Automate 覚書のホームに戻る
このサイトのホームに戻る