我们使用node-camunda外部任务客户端js来处理camunda外部任务。以下是客户端配置
"topic_name": "app-ext-task",
"maxTasks": 5,
"maxParallelExecutions": 5,
"interval": 500,
"usePriority": true,
"lockDuration":2100000,
"workerId": "app-ext-task-worker"
我们正在获取外部任务的详细信息并能够处理它们,但有时我们会看到一些任务变得不优先。
我们没有为任何外部任务设置任何优先级,默认情况下,所有任务的优先级都为0。
我们预计所有任务都将按顺序执行,我们同意一些任务可能比后续任务花费更多时间,因此taks-1可能比task-2花费更多时间。
例如:如果队列包含10个taks[task1,taks-2,task-3,task-4,task-5,…task-10]所有按顺序执行的任务都具有相同的优先级。第一:任务-1,第二:任务-2第三:任务-3
问题:我们看到一些任务的优先级降低了,这意味着早期消息的优先级高于现有消息。
第一:任务-1,
第二:任务-2
第三:任务-4
第四:任务-5
第五:任务-6
第六:任务-7
第7个:任务-8
第八:任务-3
我在的两个地方看到了问题
- 在生成消息时,camunda不可能在QUEUE中发布消息
- 读取队列camunda时,未正确处理外部任务
我没有找到太多关于这方面的文档,我不知道如何调试它。对我来说,这是一个无休止的问题,因为我找不到问题的根本原因。
我也不知道如何调试它。
我在卡蒙达排队时的期望错了吗?
外部任务不会形成一个"队列";。它们是可能的任务池中的实例;一些";任务,这些任务可能有序或不有序。你可以优先考虑任务,但如果你有10";最高";如果池中的prio任务和worker获取5,则无法确定选择了哪些任务。
但你手头有一个流程引擎,如果保持序列对你的流程至关重要,为什么你要一次启动所有任务,并依靠外部员工来保持秩序?为什么不一次只创建一个任务,并在完成后继续?