ワークフロータイプとアクティビティタイプの登録 - AWS Flow Framework for Java

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

ワークフロータイプとアクティビティタイプの登録

Amazon SWF では、使用する前にアクティビティタイプおよびワークフロータイプを登録する必要があります。ワークフローおよびアクティビティは、ワーカーに追加する実装で、フレームワークによって自動的に登録されます。このフレームワークは、ワークフローおよびアクティビティを実装するタイプを検索し、Amazon SWF でそれらを登録します。デフォルトでは、フレームワークはインターフェイス定義を使用して、ワークフロータイプおよびアクティビティタイプの登録オプションを推測します。@WorkflowRegistrationOptions 注釈または @SkipRegistration 注釈を使用するには、ワークフローインターフェイスが必要です。ワークフローワーカーは、@WorkflowRegistrationOptions 注釈を使用して設定されているすべてのワークフロータイプを登録します。同様に、@ActivityRegistrationOptions、または @SkipRegistration を使用して各メソッドに注釈を入れるか、これらのいずれかの注釈が @Activities インターフェイスに存在する必要があります。アクティビティワーカーは、@ActivityRegistrationOptions 注釈を適用して設定されているアクティビティタイプをすべて登録します。ワーカーのいずれかを開始すると、自動的に登録されます。@SkipRegistration 注釈を持つワークフローおよびアクティビティタイプは登録されていません。@ActivityRegistrationOptions および @SkipRegistration 注釈にはオーバーライドセマンティクスが含まれており、最も具体的なものはアクティビティタイプに適用されます。

Amazon SWF では、登録後にタイプを再登録または変更することはできません。フレームワークは、すべてのタイプを登録しようとしますが、そのタイプが既に登録されている場合は、再登録されず、エラーも報告されません。

登録済みの設定を変更する必要がある場合は、そのタイプの新しいバージョンを登録する必要があります。新しい実行を開始する際、または生成されたクライアントを使用するアクティビティを呼び出す際、登録された設定を上書きすることもできます。

登録するには、タイプ名といくつかの登録オプションが必要です。デフォルトの実装では、これらの項目を次のように判断します。

ワークフロータイプ名とバージョン

フレームワークは、ワークフローインターフェイスからワークフロータイプ名を決定します。デフォルトのワークフロータイプ名の形式は、{prefix}{name} です。{prefix は、@Workflow インターフェイスの名前に「.」がついたもの、{name} は、@Execute メソッドの名前に設定されます。前述の例のデフォルトのワークフロータイプ名は MyWorkflow.startMyWF です。デフォルト名は、@Execute メソッドの名前パラメータを使用して上書きできます。次の例のデフォルトのワークフロータイプ名は startMyWF です。名前の文字列を空欄にすることはできません。@Execute を使用して名前を上書きすると、フレームワークでプレフィックスは自動的に付加されません。独自の命名スキームを使用することができます。

ワークフローバージョンは、@Execute 注釈の version パラメータを使用して指定されます。デフォルトの version はないため、明示的に指定する必要があります。version は自由形式の文字列で、独自のバージョニングスキームを使用することができます。

通知名

シグナルの名前は、@Signal 注釈の名前パラメータを使用して指定されます。指定しない場合は、シグナルメソッドの名前にデフォルトで設定されます。

アクティビティタイプ名とバージョン

フレームワークは、アクティビティインターフェイスからアクティビティタイプの名前を決定します。デフォルトのアクティビティタイプ名の形式は、{prefix}{name} です。{prefix} は、@Activities インターフェイスの名前に「.」がついたもの、{name} は、メソッド名に設定されます。デフォルトの {{prefix} は、アクティビティインターフェイスの @Activities 注釈で上書きできます。アクティビティメソッドで @Activity 注釈を使用して、アクティビティタイプ名を指定することもできます。@Activity を使用して名前を上書きすると、フレームワークでプレフィックスが付加されることはありません。独自の命名スキームを使用することができます。

アクティビティバージョンは、@Activities 注釈のバージョンパラメータを使用して指定されます。このバージョンは、インターフェイスで定義されているすべてのアクティビティとして使用されているため、@Activity 注釈を使用してアクティビティ単位で上書きすることができます。

デフォルトのタスクリスト

デフォルトのタスクリストは、@WorkflowRegistrationOptions および @ActivityRegistrationOptions 注釈と、defaultTaskList パラメータを使用して設定できます。デフォルトでは、USE_WORKER_TASK_LIST に設定されます。これは、アクティビティタイプまたはワークフロータイプを登録するために使用されるワーカーオブジェクトで構成されたタスクリストを使用するようにフレームワークに指示する特殊な値です。これらの注釈を使用して、デフォルトタスクリストを NO_DEFAULT_TASK_LIST に設定し、デフォルトタスクリストを登録しないように選択することもできます。この設定は、実行時にタスクを指定する必要がある場合に使用できます。デフォルトタスクが登録されていない場合は、ワークフローの開始時にタスクリストを指定するか、生成されたクライアントの各メソッドオーバーロードで StartWorkflowOptions および ActivitySchedulingOptions パラメータを使用して、アクティビティメソッドを呼び出す必要があります。

他の登録オプション

Amazon SWF API で許可されているすべてのワークフロータイプおよびアクティビティタイプの登録オプションは、フレームワークを通じて指定できます。

ワークフローの登録オプションの詳細な一覧については、以下を参照してください。

アクティビティの登録オプションの詳細な一覧については、以下を参照してください。

タイプの登録を完全に制御するには、「ワーカーの拡張機能」を参照してください。