Dynamic Workflows Playground ↗ を試し、JavaScript でワークフローロジックを書き、Dynamic Worker から実行し、各ステップをリアルタイムで記録します。
この例では、Dynamic Worker から Cloudflare Workflows を実行し、オンデマンドで動かしたい任意のワークフローに、ステップの再試行、スリープ、ハイバネーション、waitForEvent を含む完全な耐久実行を付けます。
構成は 2 つです。
- Worker Loader — プラットフォームロジックを実行する Worker です。リクエストを受け取り、ユーザーのワークフローコードを Dynamic Worker として読み込み、ワークフローの作成と実行ができるよう Workflow バインディングを渡します。
- Dynamic Worker — ワークフローを定義する側です。ここでワークフローロジックを書きます。実行するステップ、スリープ時間、待機するイベントを含めます。
@cloudflare/dynamic-workflows ↗ ライブラリが両者をつなぎます。Dynamic Worker がワークフローを作成すると、ライブラリはどの Dynamic Worker が作ったかの情報をタグ付けします。このタグは Workflows エンジンが永続化するため、スリープ、失敗、サーバー再起動のあとでワークフローを再開するとき、エンジンは続行のためにどの Dynamic Worker を再読み込みするかを把握できます。
ライブラリの全体的な手順とセットアップ方法は、Dynamic Workflows ガイド を参照してください。
- Worker Loader と Dynamic Worker のセットアップ — 実行時にワークフローコードを読み込む Worker Loader と、
@cloudflare/dynamic-workflows↗ を使って耐久実行で動かす Dynamic Worker の、動作する完全な例です。 - ライブログストリーミング — Dynamic Worker からのすべての
console.log()とconsole.warn()を取り込み、ブラウザーへリアルタイムでストリーミングします。各ステップの内部で何が起きているかを、実行中に確認できます。 - ソースの永続化 — ワークフローコードを保存します。ワークフローが一時停止し(たとえば
step.sleep()中)、サーバーがプロセスをリサイクルしても、同じコードを再読み込みして中断したところから再開できます。