java - AWS SWF Flow Activity 开始关闭超时是否包括 Activity 重试?

标签 java amazon-web-services registration amazon-swf

我正在尝试使用 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 方面实现。

回答您的问题:

  1. 是的,会的。
  2. 没有。

关于java - AWS SWF Flow Activity 开始关闭超时是否包括 Activity 重试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29354440/

相关文章:

amazon-web-services - AWS Certificate Manager 中处于 Pending 状态的证书

android - 如何将aws api网关实现到android中?

swift - 通过 iPhone 应用程序将信息发送到网页

java - 无法解析符号 "Place.Field"

java - 错误 : package org. apache.commons.codec.binary 不存在

mysql - AWS : how to host ASP. NET MVC + MySQL

PHP 注册 : Auto-generate password or let user choose it

php - 存储注册和验证 IP 的充分理由有哪些

Java 扫描器需要多个输入

jre 1.8.0_60 中的 javafx 渲染故障