【问题标题】:can we have class level variable to store activity results in SWF flow's workflow worker?我们可以在 SWF 流的工作流工作者中使用类级别变量来存储活动结果吗?
【发布时间】:2020-08-27 13:31:44
【问题描述】:

在决策者的所有 SWF Flow 文档中,都提到决策者应该是确定性的,并且在工作流工作程序中不应使用随机变量。但我想知道我们是否可以在存储活动结果的工作流工作者中拥有类级别的变量,以便我们可以在随后的活动中使用结果..

在回放场景中,SWF 为已完成的活动重新填充所有 Promise。 这是否意味着我们只能存储返回的 Promise 或直接存储 Promises 携带的对象

【问题讨论】:

    标签: amazon-web-services amazon-swf


    【解决方案1】:

    是的,当然。工作流是有状态的,并且可以包含存储任何数据的字段。

    在编写工作流代码时不要考虑重放。如果您的代码是确定性的,那么您只需将其视为普通代码,框架会负责恢复基础设施故障的状态。

    顺便说一句。查看temporal.io,这是一个更加完善的 SWF 开源版本。例如,它允许编写工作流代码,并在必要时阻塞活动调用。

    免责声明:我是 SWF 的原始技术主管,也是 Temporal 的现任主管。

    【讨论】:

    • 感谢您的确认。我们在测试中看到了上述行为。我们在使用 SWF 时面临的主要问题是必须针对每个小的工作流程更改和每个域 100K 的执行限制来提高版本。 temporal 是否解决了这些限制?
    • 是的,Temporal 允许直接对代码进行版本控制而不会出现版本冲突,并且对每个域的执行次数没有硬性限制(称为命名空间)。我们在 Uber 测试了多达 2 亿次并行执行,但如果需要,可能会更高。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-09
    • 2016-06-19
    • 2014-12-21
    • 2022-11-19
    相关资源
    最近更新 更多