---
title: "処理サービスワークフロー"
slug: "processing-service-workflow"
abstract: "処理サービスのワークフローの概要:作業取得、インタラクション処理、タイムアウトの設定など。"
---
# 処理サービスワークフロー

処理サービスには3つのワークフローがあります:

-   [仕事を得るために](https://doc.sitecore.com/xp/ja/developers/100/sitecore-experience-platform/processing-service-workflow.html#UUID-dcc88498-4b4c-2013-aa01-8a57ecfaa02b_section-idm93085973715136 "Getting work")
-   [プロセス相互作用](https://doc.sitecore.com/xp/ja/developers/100/sitecore-experience-platform/processing-service-workflow.html#UUID-dcc88498-4b4c-2013-aa01-8a57ecfaa02b_section-idm93085973910716 "Process interaction")
-   [タイムアウトをセット](https://doc.sitecore.com/xp/ja/developers/100/sitecore-experience-platform/processing-service-workflow.html#UUID-dcc88498-4b4c-2013-aa01-8a57ecfaa02b_section-idm93085973828808 "Set timeout")

## 仕事を得るために

これがインタラクション処理の最初のステップです。プロセッシングエンジンはスケジュール上で動作し、定期的にデータベースをチェックして、インタラクションが閉じられ処理準備ができているかを確認します。プロセスは以下の通りです:

1.  タイマーはシステムに閉じた相互作用の確認をトリガーします。
2.  システムはデータベースからクローズドインタラクションの有無を確認し、そのイベントを含むインタラクションのバッチを取得します。
3.  システムは並列プロセスを開始し、定期的にやり取りの [タイムアウト](https://doc.sitecore.com/xp/ja/developers/100/sitecore-experience-platform/processing-service-workflow.html#UUID-dcc88498-4b4c-2013-aa01-8a57ecfaa02b_section-idm93085973828808 "Set timeout") (スケジュール)を設定します。
4.  システムは(リンクされたイベントを含む)インタラクションをワーカープールに送り、処理します。
5.  ワーカープールは単一のインタラクションを単一のワーカーに分配します。
6.  労働者は [その相互作用を処理する](https://doc.sitecore.com/xp/ja/developers/100/sitecore-experience-platform/processing-service-workflow.html#UUID-dcc88498-4b4c-2013-aa01-8a57ecfaa02b_section-idm93085973910716 "Process interaction")。
7.  ワーカーはシステムにインタラクション完了を通知します。
8.  システムは、 *SetTimeout* 作業者が見ることができるように、完了すべきインタラクションをマークします。
9.  バッチ内の残り相互作用数が設定された閾値(例えば元のバッチサイズの10%)未満であれば、ステップ [2](https://doc.sitecore.com/xp/ja/developers/100/sitecore-experience-platform/processing-service-workflow.html#UUID-dcc88498-4b4c-2013-aa01-8a57ecfaa02b_N1542017134836)から繰り返します。
10.  これ以上インタラクションがなければ、タイマーは設定されたタイムアウト後にワーカーをトリガーするように設定されます。

## プロセス相互作用

これは単一の相互作用がどのように処理され、完了するかを詳述しています:

1.  単一の追跡インタラクションを受信して処理します。
2.  作業者はプリフィルターが定義されているかを確認します。
3.  フィルターが定義されていれば、実行してください。
4.  フィルターが相互作用を除外した場合は停止し、相互作用を完了としてマークします。
5.  作業員は濃縮パイプラインが定義されているか確認し、定義されていれば実行します。
6.  作業員はポストフィルターが定義されているかを確認します。
7.  フィルターが定義されていれば、実行してください。
8.  フィルターが相互作用を除外した場合は、その相互作用を完了とマークし、停止します。
9.  ワーカーはそのインタラクションをxConnectコンテキストに追加します。
10.  ワーカーはxConnectのコンテキストにインタラクションの側面を追加します。
11.  ワーカーはxConnectコンテキストを送信します。
12.  作業者はこの相互作用を完了とマークします。

## タイムアウトをセット

インタラクションがチェックアウトされると、そのインタラクションのスケジュールプロパティは将来設定され、処理の回復と継続性を提供します。もしワーカーが処理完了前に失敗した場合、別のワーカー(単一のワーカーまたは別の処理エンジンインスタンス)がスケジュール*DateTime*が終了した後に作業を引き継ぐことがあります。

他の作業者が同じやり取りを処理しようとするのを防ぐためには、タイムアウトを未来にわずかな時間(例えば45秒)繰り返し延期しなければなりません。

このプロセスは [「仕事を得る](https://doc.sitecore.com/xp/ja/developers/100/sitecore-experience-platform/processing-service-workflow.html#UUID-dcc88498-4b4c-2013-aa01-8a57ecfaa02b_section-idm93085973715136 "Getting work") 」プロセスと並行して行われます:

1.  システムは *SetTimeout* 労働者を始めます。
2.  *SetTimeout* 数秒間待機します。待つ秒数はシステム設定によって決まります。通常、値はインタラクションチェック時に設定されたタイムアウト値の半分です。
3.  作業者はバッチからのやり取りが完了したかどうかを確認し、データベースから完成したインタラクション部品を削除します。
4.  未完了のやり取りについては、ワーカーがデータベースを呼び出し、やり取りが確認された時に使用された値にタイムアウトを設定します。