我们正在从各种基于cron的流程转向Amazon Simple Workflow Service。其中许多不再需要在特定时间运行,并且只在需要时触发。但是,对于某些工作流程,我们需要保证工作流程(或者更确切地说,工作流程中的所有活动)不会并行发生,并且任何时候都只会运行。一旦完成,它就可以再次运行了。
依赖于workflowId的唯一性,是否会出现任何问题,或者设计是否有问题?如果是这样,那么问题是什么,以及如何设计系统以确保某些工作流程在不应该开始时不会启动。
答案 0 :(得分:1)
取决于SWF并使用workflowId
进行独特的执行,因为状态持久性和仲裁层(以秒为单位被拒绝)绝对不错设计 - 这正是服务的用途。< / p>
是的,workflowId
和activityId
都足以确保唯一的执行。
现在,对于工作流程中的活动,activityId
不一定必须是唯一的,因为由决策者按任务方式安排工作。有关serial and parallel workflow executions的示例,请参阅boto SWF教程。