本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
AWS Flow Framework的 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 參考獲取更多詳細資訊。
defaultTaskHeartbeatTimeoutSeconds
-
指定
defaultTaskHeartbeatTimeout
向 Amazon SWF 註冊的此活動類型。活動工作者必須在此持續時間內提供活動訊號;否則,任務將會逾時。預設為 -1,此特殊值指出應該停用這個逾時。請參Amazon Simple Workflow Service API 參考獲取更多詳細資訊。 defaultTaskStartToCloseTimeoutSeconds
-
指定針對此活動類型要向 Amazon SWF 註冊的 defaultTaskStartToCloseTimeout。此逾時決定工作者可用來處理這類型之活動任務的最長時間。請參Amazon Simple Workflow Service API 參考獲取更多詳細資訊。
defaultTaskScheduleToCloseTimeoutSeconds
-
指定
defaultScheduleToCloseTimeout
向 Amazon SWF 註冊的此活動類型。此逾時決定任務可保持開啟狀態的總持續時間。預設為 -1,此特殊值指出應該停用這個逾時。請參Amazon Simple Workflow Service API 參考獲取更多詳細資訊。
@異步
用於工作流程協調性邏輯中的方法時,指出應該非同步執行方法。將立即傳回方法的呼叫,但會在傳遞給方法的所有 Promise<> 參數皆準備就緒時以非同步實際執行。已標註 @Asynchronous 的方法必須具有傳回類型 Promise<> 或 void。
daemon
-
指出針對非同步方法所建立的任務,是否應該為協助程式任務。預設為
False
。
@Execute
用於已標註 @Workflow
註釋之界面中的方法時,識別工作流程的進入點。
重要
界面中只有一個方法可以裝飾 @Execute
。
在此註釋上可以指定下列參數:
name
-
指定工作流程類型的名稱。如果未設定,則名稱預設為 {prefix}{name},其中 {prefix} 是後接 '.' 的工作流程界面名稱,而 {name} 是工作流程中
@Execute
裝飾方法的名稱。 version
-
指定工作流程類型的版本。
@ExponentialRetry
用於活動或非同步方法時,在方法拋出未處理的例外狀況時設定指數重試政策。重試嘗試是在退避期間之後進行,而退避期間是以嘗試次數的次方計算而來。
在此註釋上可以指定下列參數:
intialRetryIntervalSeconds
-
指定要在第一次重試嘗試之前等待的持續時間。此值不應該大於
maximumRetryIntervalSeconds
和retryExpirationSeconds
。 maximumRetryIntervalSeconds
-
指定重試嘗試之間的持續時間上限。達到之後,會將重試間隔設為此值。預設為 -1,這表示無限的持續時間。
retryExpirationSeconds
-
指定指數重試將在之後停止的持續時間。預設為 -1,這表示不會有過期的狀況。
backoffCoefficient
-
指定用來計算重試間隔的係數。請參閱 指數重試策略。
maximumAttempts
-
指定指數重試將在之後停止的嘗試次數。預設為 -1,這表示重試嘗試次數無限制。
exceptionsToRetry
-
指定應觸發重試的例外狀況類型清單。這些類型的未處理例外狀況將不會進一步傳播,而且將會在計算的重試間隔之後重試方法。此清單預設會包含
Throwable
。 excludeExceptions
-
指定不應觸發重試的例外狀況類型清單。將允許傳播這類型的未處理例外狀況。此清單預設為空的。
@GetState
用於界面中已標註 @Workflow
註釋的方法時,識別使用的方法來擷取最新工作流程執行狀態。在具有 @Workflow
註釋的界面中,最多可以有一種方法具有此註釋。具有此註釋的方法不得採用任何參數,而且必須要有 void
以外的傳回類型。
@ManualActivityCompletion
此註釋可以用於活動方法,指出在傳回方法時不應該完成活動任務。活動任務將不會自動完成,而需要直接使用 Amazon SWF API 手動完成。這適用於下列使用案例:將活動任務指派給未自動化或需要人為介入才能完成的某個外部系統。
@Signal
用於界面中已標註 @Workflow
註釋的方法時,識別界面所宣告之工作流程類型的執行可以收到的訊號。需要使用此註釋來定義訊號方法。
在此註釋上可以指定下列參數:
name
-
指定訊號名稱的名稱部分。如果未設定,則會使用方法名稱。
@SkipRegistration
用於已標註的界面時@Workflow
註釋,指出不應向 Amazon SWF 註冊工作流程類型。@WorkflowRegistrationOptions
和 @SkipRegistrationOptions
註釋中的其中一個必須用於已標註 @Workflow
的界面,但兩者不能同時使用。
@Wait 和 @NoWait
這些註釋可以用於類型為Promise<>
以指示AWS Flow Framework應該先待它準備就緒,然後再執行方法。根據預設,傳入 @Asynchronous
方法的 Promise<>
參數必須先準備就緒,再執行方法。在特定藍本中,需要覆寫此預設行為。傳入 @Asynchronous
方法且標註 @NoWait
的 Promise<>
參數則不會等待。
包含 Promise 的 Collections 參數 (或其子類別) (例如 List<Promise<Int>>
) 必須標註 @Wait
註釋。根據預設,框架不會等待集合的成員。
@工作流程
此註釋用於界面,以宣告「工作流程」類型。已裝飾此註釋的界面只應該包含一個已裝飾 @Execute 註釋的方法,來宣告您工作流程的進入點。
注意
界面不能同時宣告 @Workflow
和 @Activities
註釋;兩者會互斥。
在此註釋上可以指定下列參數:
dataConverter
-
指定要在將請求傳送至此工作流程類型的工作流程執行以及接收其結果時使用的
DataConverter
。預設為
NullDataConverter
,其接著會回復為JsonDataConverter
,以將所有請求和回應資料都處理為「JavaScript 物件標記法 (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 在註冊工作流程類型時所使用的預設設定。
注意
@WorkflowRegistrationOptions
或 @SkipRegistrationOptions
必須用於已標註 @Workflow
的界面,但您不能同時指定兩者。
在此註釋上可以指定下列參數:
- 描述
-
工作流程類型的選用文字描述。
defaultExecutionStartToCloseTimeoutSeconds
-
指定
defaultExecutionStartToCloseTimeout
已向 Amazon SWF 註冊的工作流程類型。這是此類型的工作流程執行完成所需的總時間。如需工作流程逾時的詳細資訊,請參閱「Amazon SWF 超時類型 」。
defaultTaskStartToCloseTimeoutSeconds
-
指定
defaultTaskStartToCloseTimeout
已向 Amazon SWF 註冊的工作流程類型。這指定此類型之工作流程執行的單一決策任務完成所需的時間。如果您未指定
defaultTaskStartToCloseTimeout
,則會預設為 30 秒。如需工作流程逾時的詳細資訊,請參閱「Amazon SWF 超時類型 」。
defaultTaskList
-
用於此工作流程類型執行之決策任務的預設任務清單。啟動工作流程執行時,可以使用
StartWorkflowOptions
來覆寫這裡設定的預設值。如果您未指定
defaultTaskList
,則會預設為USE_WORKER_TASK_LIST
。這指出應該使用執行工作流程註冊之工作者所使用的任務清單。 defaultChildPolicy
-
指定要在終止這類型的執行時用於子工作流程的政策。預設值為
ABANDON
。可能值如下:-
ABANDON
— 允許子工作流程執行持續執行 -
TERMINATE
— 終止子工作流程執行 -
REQUEST_CANCEL
— 請求取消子工作流程執行
-