36.4. 使用方法
36.4.1. SWF ワークフロープロデューサーによって評価されるメッセージヘッダー
ワークフロープロデューサーを使用すると、ワークフローと対話できます。新しいワークフローの実行を開始したり、その状態をクエリーしたり、実行中のワークフローにシグナルを送信したり、ワークフローを終了してキャンセルしたりできます。
ヘッダー | タイプ | 説明 |
---|---|---|
|
|
ワークフローで実行する操作。サポートされている操作は次のとおりです。 |
|
| 使用するワークフロー ID。 |
|
| 使用するワークフロー実行 ID。 |
|
| ワークフロー状態が照会されたときの結果のタイプ。 |
|
| 使用するワークフローまたはアクティビティーイベント名。 |
|
| 使用するワークフローまたはアクティビティーイベントのバージョン。 |
|
| ワークフローを終了する理由。 |
|
| ワークフローを終了するための詳細。 |
|
| ワークフローを終了するときに子ワークフローで使用するポリシー。 |
36.4.2. SWF ワークフロープロデューサーによって設定されるメッセージヘッダー
ヘッダー | タイプ | 説明 |
---|---|---|
|
| 使用された、または新しく生成されたワークフロー ID。 |
|
| 使用または生成されたワークフロー実行 ID。 |
36.4.3. SWF ワークフローコンシューマーによって設定されるメッセージヘッダー
ワークフローコンシューマーは、ワークフローロジックを表します。開始されると、ワークフロー決定タスクのポーリングが開始され、それらが処理されます。決定タスクの処理に加えて、ワークフローコンシューマールートはシグナル (ワークフロープロデューサーから送信) または状態クエリーも受信します。ワークフローコンシューマーの主な目的は、アクティビティープロデューサーを使用して実行するアクティビティータスクをスケジュールすることです。実際、アクティビティータスクは、ワークフローコンシューマーによって開始されたスレッドからのみスケジュールできます。
ヘッダー | タイプ | 説明 |
---|---|---|
|
| 現在のイベントのタイプを示します: CamelSWFActionExecute、CamelSWFSignalReceivedAction、または CamelSWFGetStateAction。 |
|
| 現在の決定タスクがリプレイかどうかを示します。 |
|
| この決定タスクの開始イベントの時刻。 |
36.4.4. SWF アクティビティープロデューサーによって設定されるメッセージヘッダー
アクティビティープロデューサーを使用すると、アクティビティータスクをスケジュールできます。アクティビティープロデューサーは、ワークフローコンシューマーによって開始されたスレッドからのみ使用できます。つまり、ワークフローコンシューマーによって開始された同期エクスチェンジを処理できます。
ヘッダー | タイプ | 説明 |
---|---|---|
|
| スケジュールするアクティビティー名。 |
|
| スケジュールするアクティビティーバージョン。 |
36.4.5. SWF アクティビティーコンシューマーによって設定されるメッセージヘッダー
ヘッダー | タイプ | 説明 |
---|---|---|
|
| 手動で完了したタスクの完了を報告するために必要なタスクトークン。 |
36.4.6. 高度な amazonSWClient 設定
AmazonSimpleWorkflowClient インスタンス設定をさらに制御する必要がある場合は、独自のインスタンスを作成し、URI から参照できます。
#client
は、レジストリー内の AmazonSimpleWorkflowClient を参照します。
たとえば、Camel アプリケーションがファイアウォールの内側で実行されている場合:
AWSCredentials awsCredentials = new BasicAWSCredentials("myAccessKey", "mySecretKey"); ClientConfiguration clientConfiguration = new ClientConfiguration(); clientConfiguration.setProxyHost("http://myProxyHost"); clientConfiguration.setProxyPort(8080); AmazonSimpleWorkflowClient client = new AmazonSimpleWorkflowClient(awsCredentials, clientConfiguration); registry.bind("client", client);