AWS Flow Framework的 Java 註釋 - AWS Flow Framework 適用於 Java

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

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

指定要在第一次重試嘗試之前等待的持續時間。此值不應該大於 maximumRetryIntervalSecondsretryExpirationSeconds

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 方法且標註 @NoWaitPromise<> 參數則不會等待。

包含 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— 請求取消子工作流程執行