2015-03-30 65 views
2

我試圖用配置的Java的流框架我的SWF的活動之一,我無法找到有關StartToClose超時是否僅適用於單個活動的嘗試或全部重試該活動的任何文件。AWS SWF Flow是否將活動開始關閉超時包括活動重試?

這裏是我的活動配置:

@Activity(name = "WaitForExternalTaskToFinish", version = "1.0") 
@ActivityRegistrationOptions(
     defaultTaskScheduleToStartTimeoutSeconds = 60, 
     defaultTaskStartToCloseTimeoutSeconds = 60) 
@ExponentialRetry(
     initialRetryIntervalSeconds = 60, 
     maximumRetryIntervalSeconds = 300, 
     retryExpirationSeconds = 7200, 
     exceptionsToRetry = IllegalStateException.class) 
boolean waitForExternalTaskToFinish(long externalTaskId); 

我試圖讓這個活動,預計需要很短的執行時間(如5秒),但如果活動失敗,然後繼續重試活動2小時。

  • 將這個配置做我想做什麼?
  • 我需要改變defaultTaskStartToCloseTimeoutSeconds到7200?
  • 如果我需要改變defaultTaskStartToCloseTimeoutSeconds到7200,那麼我怎麼活動失敗,如果一個活動嘗試的執行是「太長」(例如100秒)?

回答

4

StartToClose超時是針對單個活動的嘗試。指數重試本質上不受SWF後端支持,目前作爲決策邏輯實施。如果你對here is ExponentialRetry AspectJ方面的實現感到好奇。

回答您的問題:

  1. 是會的。