我在2周内间歇性地面对这个问题。正如我所观察到的,每次出现此问题时,都是由于活动ID 26所致。我看到活动ID 26已成功完成。不确定为什么决策任务失败并且成功完成的活动。
“eventTimestamp”:1500668941.164,
“eventType”:“WorkflowExecutionFailed
”,
“eventId”:866,“workflowExecutionFailedEventAttributes”:
“细节”:
“java.lang.IllegalArgumentException:Unknown DecisionId
[type = ACTIVITY,id = 26]。
可能的原因是工作流定义中的non-deterministic workflow definition
代码或incompatible change
。at:com.amazonaws.services.simpleworkflow.flow.worker.DecisionsHelper.getDecision(DecisionsHelper.java:613)
com.amazonaws.services.simpleworkflow.flow.worker.DecisionsHelper.handleActivityTaskScheduled(DecisionsHelper.java:171)
在: com.amazonaws.services.simpleworkflow.flow.worker.AsyncDecider.processEvent(AsyncDecider.java:267) com.amazonaws.services.simpleworkflow.flow.worker.AsyncDecider.decide(AsyncDecider.java:515)
在: com.amazonaws.services.simpleworkflow.flow.worker.AsyncDecisionTaskHandler.handleDecisionTask(AsyncDecisionTaskHandler.java:50)
在 com.amazonaws.services.simpleworkflow.flow.worker.DecisionTaskPoller.pollAndProcessSingleTask(DecisionTaskPoller.java:201)
在 com.amazonaws.services.simpleworkflow.flow.worker.GenericWorker $ PollServiceTask.run(GenericWorker.java:94)java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
在java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:617)
在java.lang.Thread.run(Thread.java:745)“,“decisionTaskCompletedEventId”:865,
“reason”:“Unknown DecisionId
[type = ACTIVITY,id = 26]。
可能的原因是non-deterministic workflow definition
代码或工作流定义中的不兼容更改。“
任何帮助都将不胜感激。
答案 0 :(得分:0)
AWS Flow Framework使用重播来重建工作流状态。它要求工作流程代码是确定性的。即当重播历史时,它会完全进入相同的状态。打破决定论有多种方法。最常见的是工作流代码(或配置)更改,而某些工作流正在运行或使用系统时间而不是框架提供的Clock对象。 您是否进行任何时间计算或最近更改过工作流程代码?
有关更新工作流程代码的各种方法,请参阅Making Changes to Decider Code: Versioning and Feature Flags,而不会破坏正在运行的工作流程。