【问题标题】:AWS SWF good practice for sequential activities顺序活动的 AWS SWF 良好实践
【发布时间】:2013-05-26 19:16:27
【问题描述】:

我是 AWS SWF 的新手。仍处于学习和文件处理阶段。只是想出一个愚蠢的问题。对于顺序工作流的用例,不是定义将由决策者按顺序执行的一系列活动,我们是否应该将所有实现放入一个大活动中?由于工作流中的每个任务的收费为 0.000..25 美元,因此这种方式可以为大规模节省更多资金。

对于这种用例,在保证顺序工作流执行中声明一系列小活动的充分理由是什么?

【问题讨论】:

  • 如果您可以将所有内容放在一个活动中,请不要使用 SWF。这没有任何意义。它为您提供什么?只需使用 SQS 或 SNS 就可以省去一些麻烦。如果您不打算在工作流程的进展过程中做出决定,那么使用 SWF 的复杂性对您来说只是白费力气。
  • 对于 SQS,根据aws.amazon.com/sqs/faqs,每条消息“至少传递一次”,因此可能会产生重复,这在分布式/无-单点故障方式。 SNS 本身使用推送系统,这在所有情况下都可能不合适/可能。

标签: amazon-web-services cloud amazon amazon-swf


【解决方案1】:

如果您的用例实际上很简单,您可以声明一个大活动(如您所说的那样更便宜),但总的来说,使用一组小活动的好处是:

  • 您可以使用专门的资源在一组不同的工作人员(通过不同的任务列表)中运行特定步骤(其中一个活动)。例如,您可以运行两个工人场:一个用于通用目的的“常规”场,一个用于计算密集型操作的“大 CPU”场;同一工作流执行的所有部分。
  • 根据您执行活动的方式(使用 Flow 或您自己的工作运行时),您可以单独重试失败的活动。
  • 您可以独立地对活动进行版本控制,而不是只为整个工作流程提供一个版本。
  • 如果工作流不断发展,使用一组活动(工作流的组成部分之一)扩展或更新会更容易。
  • 如果将来您需要在工作流信号之后采取行动,您将很难解耦您的逻辑来支持它。
  • 原子活动可能被其他工作流类型(甚至相同的工作流:例如,在工作流的开始和结束时发送电子邮件)重用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-18
    • 2011-03-09
    • 2015-06-09
    • 2018-12-02
    相关资源
    最近更新 更多