Workflows はデータのバッチ処理に使えます。バッチ内の各項目が、定義した処理を信頼性高く通るようにします。このセクションでは、Punderful アプリケーションを例に、ダジャレのバッチ処理を示します。
関連コンテンツ
詳細を確認する場合は、次のページを参照してください。
Punderful アプリケーションは、ユーザーが投稿したダジャレに対してコンテンツモデレーション、埋め込みの作成、カテゴリ分けを行い、ベクトルストアへ追加します。この処理は Workflow として定義されています。既存のダジャレ(OPun というオープンソースデータセット)をバッチ処理するために、各ダジャレを順に処理し、定義済みの Workflow を 1 件ずつ起動するバッチ用エンドポイントを作成します。
次のコードスニペットは、バッチ処理を担当するエンドポイントです。
このコードは次を行います。
- JSON ファイル(
puns.json)からダジャレの一覧を取得します。 - 処理するダジャレの件数をログに出します。
- 追跡用のユーザー ID を設定します。
- 各ダジャレをループします。
- ダジャレに対して基本的なテキストクリーニングを行います。
- ダジャレをデータベースへ挿入します(
insertPunが担当します)。 c.env.PUBLISH.create()で、各ダジャレに対してPUBLISHWorkflow を起動します。Workflow にはcrypto.randomUUID()で一意の ID を付けます。
Cloudflare Wrangler CLI には、Workflows とそのインスタンスを監視・管理するコマンドがあります。
アカウントに紐づく利用可能な Workflow を一覧表示するには、次を実行します。
npx wrangler workflows list特定の Workflow(たとえば publish Workflow)のインスタンスを一覧表示するには、次を実行します。
npx wrangler workflows instances list publishこのコマンドは、Workflow インスタンスの一覧、ステータス(Queued、Running、Completed、Errored)、タイムスタンプを表示します。
特定の Workflow インスタンスの詳細(各ステップとそのステータス、所要時間、出力)を表示するには、次を実行します。
npx wrangler workflows instances describe publish <instance-id><instance-id> は、list コマンドの出力にある実行中または完了済みインスタンスの実際の ID に置き換えます。
Workflow インスタンスの詳細表示では、実行内容が細かく分かれます。
Workflow Name: publish
Instance ID: oPun-batch-aea07d75-95fa-448f-9573-6e435388eff7
Version ID: 75665fce-24a1-4c83-a561-088aabc91e5f
Status: Completed
Trigger: API
Queued: 10/24/2024, 1:43:45 AM
Success: Yes
Start: 10/24/2024, 1:43:45 AM
End: 10/24/2024, 1:43:49 AM
Duration: 4 seconds
Last Successful Step: update-status-to-published-1
Steps:
Name: content-moderation-1
Type: Step
Start: 10/24/2024, 1:43:45 AM
End: 10/24/2024, 1:43:45 AM
Duration: 0 seconds
Success: Yes
Output: "true"
Config: {"retries":{"limit":5,"delay":1000,"backoff":"exponential"},"timeout":"10 minutes"}
Attempts:
Status: Completed
Start Time: Oct 23, 2024 6:44:57 PM
End Time: Oct 23, 2024 6:44:57 PM
Wall Time: 180 ms
... (additional steps like create-pun-embedding-1, categorize-pun-1, add-embeddings-to-vector-store-1, update-status-to-published-1)この出力では、Workflow インスタンス内の各ステップについて、ステータス、開始時刻と終了時刻、所要時間、成功可否、出力、設定が分かります。
Cloudflare ダッシュボードでも、Workflows とそのインスタンスを直接監視できます。
ダッシュボードを使うと、バッチジョブの進捗を確認し、失敗したインスタンスを特定し、各ステップの実行内容を調べやすくなります。