Amazon SWF:Java活动工作人员接收错误的任务

时间:2016-08-26 19:02:57

标签: amazon-web-services amazon-swf

我从Amazon的基于Java的HelloWorldWorkflowDistributed示例开始,我正在逐步添加它以实现我们想要的目标。我已经添加了第二个活动工作者,但这两个活动正在接收彼此的任务,并且没有完成任务。任何人都可以指向一个工作流程的完整,工作示例,该工作流程会呼叫两个或更多不同的工作人员吗? 例如。运行BarActivities.getName的控制台中出现以下错误,反之亦然:

Aug 26, 2016 2:15:24 PM com.amazonaws.services.simpleworkflow.flow.worker.SynchronousActivityTaskPoller execute
SEVERE: Failure processing activity task with taskId=10, workflowGenerationId=id_for_107, activity={Name: FooActivities.getAddress,Version: 1.0.7}, activityInstanceId=1
com.amazonaws.services.simpleworkflow.flow.ActivityFailureException: Unknown activity type: {Name: FooActivities.getAddress,Version: 1.0.7} : null
    at com.amazonaws.services.simpleworkflow.flow.worker.SynchronousActivityTaskPoller.execute(SynchronousActivityTaskPoller.java:194)
    at com.amazonaws.services.simpleworkflow.flow.worker.ActivityTaskPoller$2.run(ActivityTaskPoller.java:92)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

1 个答案:

答案 0 :(得分:0)

活动工作人员使用任务列表轮询活动任务。我相信你添加了一个新的工作者而没有为其活动使用单独的任务列表。由于两个工作人员共享相同的任务列表,他们最终有时会收到他们不支持的活动的任务,这会导致“未知活动类型”异常。解决方案是为每个工作人员使用不同的任务列表。