【问题标题】:How to implement SWF exponential retries using the aws sdk如何使用 aws sdk 实现 SWF 指数重试
【发布时间】:2016-03-10 01:58:37
【问题描述】:

我正在尝试使用 AWS SDK v2 实现一个 jruby SWF 活动工作者。

我不能使用 aws-flow-ruby 框架,因为它与 jruby(forking) 不兼容,所以我写了一个使用线程的 worker。

https://github.com/djpate/jflow如果人们有兴趣。

无论如何,在他们实现重试的框架中,如果活动失败,它似乎实际上会在以后安排相同的活动。

我在 AWS 文档中随处可见,但找不到如何使用 SDK http://docs.aws.amazon.com/sdkforruby/api/Aws/SWF/Client.html 将该信号发送回 SWF

有人知道我应该去哪里看吗?

【问题讨论】:

    标签: amazon-web-services amazon-swf


    【解决方案1】:

    从这个问题来看,我相信您对 SWF 是什么/它是如何工作的有些困惑。

    活动不会运行,也不会单独重试。一切都发生在工作流的上下文中。工作流定义告诉您何时重试以及在活动失败/超时等情况下如何处理。

    处理工作流定义并安排接下来需要发生的事情的工作人员称为决策者。 (您将看到可互换使用的决策程序和工作流程)。它被称为决策者,因为它根据当前状态决定下一个需要安排的活动是什么。决策者在进行此输入时通常将工作流历史记录作为输入。

    例如,在 Flow 中,重试是在工作流逻辑中编码的。基本上,如果活动失败,您可以安排它。

    所以最后回答你的问题:如果你的目标是只实现活动工作者,那么你不需要实现任何重试逻辑,因为这发生在决策者级别。您应该确保活动与决策程序兼容(您需要确保历史记录和输入/输出约定相同)。 如果您的目标是在 SWF 之上实现您自己的框架,那么您实际上需要做一些艰苦的工作以使决策器工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-27
      • 2018-10-26
      • 2021-07-29
      • 1970-01-01
      • 2022-11-06
      • 2017-10-01
      • 2014-11-17
      • 1970-01-01
      相关资源
      最近更新 更多