2015-03-30 66 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. 是会的。