流れを増やす、Fork!
記事作成日:2021/04/17
記事更新日:2021/04/18
Forkブロックとは。
fork
今回は、Fork ブロックを使って、ファイバーを増やしてみます。
私は、Fork ブロックを気に入っています。使い慣れてくると、あなたのやりたいことがこれで叶うかも?しれません。
例えば、複数のURLにほぼ同時にアクセスすることができるようになったり、頭を使いますが、反復実行の簡略化ができます。
特殊な出口 --> "New"
このブロックは流れ(ファイバー) の 制御ブロックの一つです。
このブロックを使うことで、新しい流れを生み出すことが出来ます。
入口
→ 流れ(ファイバー)の 入口、Fork の機能が実行されます。
新しい出口
→ 新しいファイバー が出ていきます。(川が2つに分かれるイメージです。)
出口
→
(入口) から入ってきたファイバー が出ていきます。
例
このフローを実行すると、2秒と4秒が経過するごとに、ログに "...秒経過しました。" と表示されます。
このことから、新しく生成された、ファイバーが動作していることが確認できます。
注意点
新しいファイバーを作り出して、同時に処理ができるようになるブロックで、便利ではあるのですが実は、デメリットもあります。
それは、
実行ファイバーの増加に伴うパフォーマンスの低下
余りに多くのファイバーを管理しようとすると、フローの実行速度が低下していきます。
これは、Automate の 「協調性マルチタスク」によるものです。
実は、フロー内で高負荷がかかると、他のフローの実行速度も低下します。(検証済)
とりあえず、高負荷をかけなければ、フローの実行速度が落ちることはありませんし、複雑なフローを実行させることがなければ影響はありません。
まとめ
Forkブロックを使えば、同時に機能を実行したりすることが出来ます。
そして、実行ファイバーを増やしすぎないこと。
ついでに私の最高記録は 1000+ くらい(多分)。やりすぎると、クラッシュするよ!!
今は、簡単に説明しましたが、またどこかで詳しく説明したいとおもいます。
インデックスに戻る
Automate 覚書のホームに戻る
このサイトのホームに戻る