2

我们正在从各种基于 cron 的流程转移到 Amazon Simple Workflow Service。其中许多不再需要在特定时间运行,只需在需要时触发。但是,对于某些工作流,我们需要保证工作流(或者更确切地说,工作流中的所有活动)不会并行发生,并且在任何时候都只有一个运行。完成后,它可以再次运行。

依赖workflowId的唯一性会不会有任何问题,或者是某种糟糕的设计?如果是这样,会出现什么问题,以及如何设计系统以确保某些工作流在不应该启动时不启动。

4

1 回答 1

1

依赖于 SWF 并使用workflowId独特的执行作为状态持久性和仲裁层(以第二个出现的为准)绝对是不错的设计 - 这正是该服务的用途。

是的,两者workflowIdactivityId足以确保独特的执行。

现在,对于工作流中的活动,activityId不一定必须是唯一的,因为由决策者以逐个任务的方式安排工作。有关串行和并行工作流执行的示例,请参阅 boto SWF 教程。

于 2013-11-02T10:45:28.610 回答