AWS Flow Framework for Java 注釈 - AWS Flow Framework for Java

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWS Flow Framework for Java 注釈

@Activities

この注釈をインターフェイスに設定してアクティビティタイプのセットを宣言できます。この注釈を設定したインターフェイスの各メソッドはアクティビティタイプを表します。インターフェイスには、@Workflow 注釈と @Activities 注釈の両方は設定できません

この注釈では、以下のパラメータを指定できます。

activityNamePrefix

インターフェイスで宣言したアクティビティタイプの名前のプレフィックスを指定します。空の文字列 (デフォルト) に設定すると、インターフェースの名前の後に「.」がプレフィックスとして使用されます。

version

インターフェイスで宣言したアクティビティタイプのデフォルトバージョンを指定します。デフォルト値は、「1.0」です。

dataConverter

このアクティビティタイプとその結果を作成するときに、データのシリアル化/逆シリアル化に使用する DataConverter の型を指定します。デフォルトでは NullDataConverter に設定されます。この場合、JsonDataConverter を使用することを指示します。

@Activity

この注釈は、@Activities で注釈を設定したインターフェイス内のメソッドで使用できます。

この注釈では、以下のパラメータを指定できます。

name

アクティビティタイプの名前を指定します。デフォルトの空の文字列では、デフォルトのプレフィックスとアクティビティメソッドの名前を使用して、アクティビティタイプの名前 ({{prefix}{{name} 形式) を決定します。@Activity 注釈で名前を指定する場合、フレームワークでは自動的にプレフィックスを先頭に追加しないことに注意してください。独自の命名スキームを使用することができます。

version

アクティビティタイプのバージョンを指定します。これにより、含むインターフェイスで @Activities 注釈に指定したデフォルトバージョンは上書きされます。デフォルトは空の文字列です。

@ActivityRegistrationOptions

アクティビティタイプの登録オプションを指定します。この注釈は、@Activities で注釈を設定したインターフェイスまたはインターフェイス内のメソッドで使用できます。両方の場所に指定すると、メソッドに設定した注釈が適用されます。

この注釈では、以下のパラメータを指定できます。

defaultTasklist

このアクティビティタイプに対して Amazon SWF に登録されているデフォルトのタスクリストを指定します。このデフォルトは、生成されたクライアントでアクティビティメソッドを呼び出すときに、ActivitySchedulingOptions パラメータを使用して上書きできます。デフォルトでは USE_WORKER_TASK_LIST に設定されます。この特別な値では、登録を担当するワーカーで使用しているタスクリストを使用することを指定します。

defaultTaskScheduleToStartTimeoutSeconds

このアクティビティタイプに対して Amazon SWF に登録されている defaultTaskScheduleToStartTimeout を指定します。このアクティビティタイプのタスクをワーカーに割り当てるまでに許容される最大の待機時間を示します。詳細については、「Amazon Simple Workflow Service API Reference」(Amazon Simple Workflow Service API リファレンス) を参照してください。

defaultTaskHeartbeatTimeoutSeconds

このアクティビティタイプに対して Amazon SWF に登録されている defaultTaskHeartbeatTimeout を指定します。アクティビティワーカーは、この時間内にハートビートを提供する必要があります。提供しない場合、タスクはタイムアウトになります。デフォルトでは -1 に設定されます。この特別な値では、このタイムアウトを無効化することを指定します。詳細については、「Amazon Simple Workflow Service API Reference」(Amazon Simple Workflow Service API リファレンス) を参照してください。

defaultTaskStartToCloseTimeoutSeconds

このアクティビティタイプに対して Amazon SWF に登録されている defaultTaskStartToCloseTimeout を指定します。このタイムアウトは、このタイプのアクティビティタスクをワーカーで処理する最大許容時間を決定します。詳細については、「Amazon Simple Workflow Service API Reference」(Amazon Simple Workflow Service API リファレンス) を参照してください。

defaultTaskScheduleToCloseTimeoutSeconds

このアクティビティタイプに対して Amazon SWF に登録されている defaultScheduleToCloseTimeout を指定します。このタイムアウトは、タスクをオープン状態に保持できる総時間を決定します。デフォルトでは -1 に設定されます。この特別な値では、このタイムアウトを無効化することを指定します。詳細については、「Amazon Simple Workflow Service API Reference」(Amazon Simple Workflow Service API リファレンス) を参照してください。

@Asynchronous

ワークフロー調整ロジックのメソッドで使用した場合、メソッドを非同期的に実行することを指定します。メソッドへの呼び出しは即座に戻りますが、実際の実行は、メソッドに渡したすべての Promise<> パラメータが準備完了状態になったときに非同期的に行われます。@Asynchronous で注釈を設定したメソッドは、戻り値の型として Promise<> または void を使用する必要があります。

daemon

非同期メソッド用に作成したタスクをデーモンタスクにするかどうかを指定します。デフォルトでは False です。

@Execute

@Workflow で注釈を設定したインターフェイスのメソッドで使用した場合、ワークフローのエントリポイントを識別します。

重要

@Execute で修飾できるインターフェイスのメソッドは 1 つのみです。

この注釈では、以下のパラメータを指定できます。

name

ワークフロータイプの名前を指定します。設定しない場合は、デフォルトで {prefix}{name} に設定されます。ここで、{prefix} は、ワークフローインターフェイスの名前に「.」がついたもの、{name} は、ワークフロー内で @Execute で修飾されたメソッドの名前を表します。

version

ワークフロータイプのバージョンを指定します。

@ExponentialRetry

アクティビティまたは非同期メソッドで使用した場合、処理されない例外がメソッドからスローされると、指数再試行ポリシーを設定します。再試行は、試行数の累乗によって計算されるバックオフ期間の後に行われます。

この注釈では、以下のパラメータを指定できます。

intialRetryIntervalSeconds

最初の再試行までに待機する時間を指定します。この値は、maximumRetryIntervalSeconds および retryExpirationSeconds 以下にする必要があります。

maximumRetryIntervalSeconds

再試行間の最大時間を指定します。最大時間に達すると、この値が再試行間隔の上限となります。デフォルトの -1 に設定すると、時間は無制限になります。

retryExpirationSeconds

指数再試行を停止する期限を指定します。デフォルトの -1 に設定すると、有効期限切れはありません。

backoffCoefficient

再試行間隔の計算に使用する係数を指定します。「指数的再試行戦略」を参照してください。

maximumAttempts

指数再試行を停止するまでの試行数を指定します。デフォルトの -1 に設定すると、再試行数に制限はありません。

exceptionsToRetry

再試行をトリガーする例外タイプのリストを指定します。これらのタイプの処理されない例外は以後伝播されず、計算された再試行間隔の後でメソッドが再試行されます。デフォルトでは、リストに Throwable が含まれます。

excludeExceptions

再試行をトリガーしない例外タイプのリストを指定します。このタイプの処理されない例外は伝播できます。デフォルトでは、リストは空です。

@GetState

@Workflow 注釈を設定したインターフェイスのメソッドで使用した場合、このメソッドを使用してワークフロー実行の最新状態を取得することを指定します。@Workflow 注釈を設定したインターフェイスでは、この注釈を最大 1 つのメソッドに設定できます。この注釈を設定したメソッドは、パラメータを取ることができず、戻り値の型として void 以外を使用する必要があります。

@ManualActivityCompletion

この注釈をアクティビティメソッドで使用して、メソッドが戻ったときにアクティビティタスクを未完了状態にすることを指定できます。アクティビティタスクは自動的に完了しないため、Amazon SWF API を使用して直接手動で完了する必要があります。これが役立つユースケースとしては、アクティビティタスクを外部システムに委任する際に、委任先が自動化されていないか、人間が介入して完了させる必要がある場合が挙げられます。

@Signal

@Workflow 注釈を設定したインターフェイスのメソッドで使用した場合、インターフェイスで宣言したワークフロータイプの実行で受信できるシグナルを識別します。シグナルメソッドを定義するには、この注釈を使用する必要があります。

この注釈では、以下のパラメータを指定できます。

name

シグナル名の名前部分を指定します。指定しない場合は、メソッド名が使用されます。

@SkipRegistration

@Workflow 注釈を設定したインターフェイスで使用した場合、ワークフロータイプを Amazon SWF に登録しないことを指定します。@Workflow で注釈を設定したインターフェイスでは、@WorkflowRegistrationOptions@SkipRegistrationOptions のいずれかを使用します。両方を使用することはできません。

@Wait と @NoWait

これらの注釈を Promise<> 型のパラメータで使用し、メソッドを実行するまでに AWS Flow Framework for Java で準備完了状態になるのを待つかどうかを指定できます。デフォルトでは、@Asynchronous メソッドに渡した Promise<> パラメータが準備完了状態になった後で、メソッドが実行されます。特定のシナリオでは、このデフォルトの動作を上書きする必要があります。@Asynchronous メソッドに渡され、@NoWait 注釈の Promise<> パラメータは待機されません。

List<Promise<Int>> などの Promise を含むコレクションパラメータ (またはサブクラス) には @Wait 注釈を設定する必要があります。デフォルトでは、フレームワークはコレクションのメンバーを待機しません。

@Workflow

この注釈をインターフェイスで使用して workflow タイプを宣言します。ワークフローのエントリポイントを宣言するには、この注釈で修飾したインターフェイスに、@Execute 注釈で修飾したメソッドを正確に 1 つ含める必要があります。

注記

インターフェイスでは、@Workflow 注釈と @Activities 注釈の両方を同時に宣言できません。この 2 つは相互に排他的です。

この注釈では、以下のパラメータを指定できます。

dataConverter

このワークフロータイプのワークフロー実行に対してリクエストの送信と結果の受信を行う場合、どの DataConverter を使用するかを指定します。

デフォルトでは、NullDataConverter を使用します。これに伴って JsonDataConverter ですべてのリクエストおよびレスポンスデータが JavaScript Object Notation (JSON) として処理されます。

import com.amazonaws.services.simpleworkflow.flow.annotations.Execute; import com.amazonaws.services.simpleworkflow.flow.annotations.Workflow; import com.amazonaws.services.simpleworkflow.flow.annotations.WorkflowRegistrationOptions; @Workflow @WorkflowRegistrationOptions(defaultExecutionStartToCloseTimeoutSeconds = 3600) public interface GreeterWorkflow { @Execute(version = "1.0") public void greet(); }

@WorkflowRegistrationOptions

@Workflow 注釈を設定したインターフェイスで使用した場合は、ワークフロータイプの登録時に Amazon SWF で使用されるデフォルト設定を提供します。

注記

@Workflow 注釈を設定したインターフェイスでは、@WorkflowRegistrationOptions@SkipRegistrationOptions のいずれかを使用します。両方を指定することはできません。

この注釈では、以下のパラメータを指定できます。

説明

ワークフロータイプのテキスト説明 (オプション)。

defaultExecutionStartToCloseTimeoutSeconds

このワークフロータイプに対して Amazon SWF に登録されている defaultExecutionStartToCloseTimeout を指定します。このタイプのワークフロー実行を完了するまでの総許容時間です。

ワークフローのタイムアウトの詳細については、「Amazon SWF タイムアウトの種類 」を参照してください。

defaultTaskStartToCloseTimeoutSeconds

このワークフロータイプに対して Amazon SWF に登録されている defaultTaskStartToCloseTimeout を指定します。このタイプのワークフロー実行で 1 つの決定タスクを完了するまでの総許容時間を指定します。

defaultTaskStartToCloseTimeout を指定しない場合は、デフォルトで 30 秒になります。

ワークフローのタイムアウトの詳細については、「Amazon SWF タイムアウトの種類 」を参照してください。

defaultTaskList

このワークフロータイプの実行で決定タスクに使用するデフォルトのタスクリスト。ここで設定したデフォルト値は、ワークフロー実行の開始時に StartWorkflowOptions を使用して上書きできます。

defaultTaskList を指定しない場合は、デフォルトで USE_WORKER_TASK_LIST に設定されます。これは、ワークフローの登録を担当するワーカーで使用されているタスクリストを使用することを指定します。

defaultChildPolicy

このタイプの実行が終了した場合に、子ワークフローで使用するポリシーを指定します。デフォルト値は、「ABANDON」です。指定できる値は以下のとおりです。

  • ABANDON – 子ワークフロー実行を続行できます

  • TERMINATE – 子ワークフロー実行を終了します

  • REQUEST_CANCEL – 子ワークフロー実行のキャンセルをリクエストします