我正在尝试使用 Java 的 Flow 框架配置我的一个 SWF Activity ,但我找不到任何有关 StartToClose 超时是仅针对单个 Activity 尝试还是针对该 Activity 的所有重试尝试的文档.
这是我的 Activity 的配置:
@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);
我正在尝试获取此 Activity ,该 Activity 预计需要很短的执行时间(例如 5 秒),但如果该 Activity 失败,则继续重试该 Activity 2 小时。
- 这个配置能达到我想要的效果吗?
- 我需要将 defaultTaskStartToCloseTimeoutSeconds 更改为 7200 吗?
- 如果我需要将 defaultTaskStartToCloseTimeoutSeconds 更改为 7200,那么如果单个 Activity 尝试的执行“太长”(例如 100 秒),如何让 Activity 失败?
最佳答案
StartToClose 超时适用于单个 Activity 尝试。 SWF 后端本身不支持指数重试,目前作为决策逻辑实现。如果您好奇here is ExponentialRetry AspectJ 方面实现。
回答您的问题:
- 是的,会的。
- 没有。
关于java - AWS SWF Flow Activity 开始关闭超时是否包括 Activity 重试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29354440/