Amazon web services 在AWS SWF中查找已完成活动的ActivityId?
我是AWS的SWF新手。 我正在创建一个工作流,很难弄清楚如何识别刚刚完成的活动的名称。决策者需要知道这一点,以便确定下一步要安排的活动 ActivityTaskCompletedEventAttributes()不包含有关刚刚完成的活动的id或名称的信息 另一方面,ActivityTaskScheduleEventAttributes()确实包含此信息 在识别刚刚报告完成的活动的ActivityId和名称时,是否通常只返回事件历史记录并获取上次计划的活动的id和名称(并假设这是报告完成的活动)?我觉得这不太对 在文档()中,他们讨论了定义协调逻辑的方式,这种方式似乎知道先前完成的活动的名称 这实际上是如何在实践中实现的Amazon web services 在AWS SWF中查找已完成活动的ActivityId?,amazon-web-services,Amazon Web Services,我是AWS的SWF新手。 我正在创建一个工作流,很难弄清楚如何识别刚刚完成的活动的名称。决策者需要知道这一点,以便确定下一步要安排的活动 ActivityTaskCompletedEventAttributes()不包含有关刚刚完成的活动的id或名称的信息 另一方面,ActivityTaskScheduleEventAttributes()确实包含此信息 在识别刚刚报告完成的活动的ActivityId和名称时,是否通常只返回事件历史记录并获取上次计划的活动的id和名称(并假设这是报告完成的活动)
- 乔
var name = eventHistory
.Find(e => e.EventId == mostRecentEvent
.ActivityTaskCompletedEventAttributes
.ScheduledEventId)
.ActivityTaskScheduledEventAttributes
.ActivityType
.Name
其中,
eventHistory
是SWF提供给决策者的历史事件列表,mostRecentEvent
是您感兴趣的ActivityTaskScheduleEvent。谢谢。大约一小时前我也遇到了同样的问题,所以很高兴看到你找到了解决方案。这是一个有点奇怪的设计决定,不是吗?我理解这背后的逻辑(即,如果决策者将大型任务分为多个批次),但在大多数情况下,您肯定希望从一个任务过渡到另一个任务。同意。我也明白,如果数据可以在其他地方找到,就不要在对象上添加新属性的意义(即:如果在计划的事件中可用,则不要在已完成的事件中包含参与者名称),但这肯定不是很方便。