【问题标题】:Eliminate the long polling of the external tasks in Camunda to the process engine消除 Camunda 中的外部任务对流程引擎的长轮询
【发布时间】:2022-02-01 11:09:17
【问题描述】:

我正在尝试消除camunda流程引擎的长轮询方法来通知外部任务客户端。

我的第一次尝试是使用 ExecutionListener 类和他的方法 notify 在我的 bpmn 中的一个活动的开始事件,以向 AWS SQS 队列发送一条消息,其中外部任务 ID 位于有效负载中。

发送消息后,我的外部任务将从队列中拉出消息,对其进行处理,然后通过另一个 AWS SQS 队列将响应发送到负载中包含外部任务 ID 的流程引擎。

在接收到来自队列的响应消息时,我的流程引擎将从有效负载中捕获外部任务 ID 并完成外部任务活动。另一种方法是我的外部任务在 [external-task/{ext-task-id}/complete] 处发出发布请求。

我的问题是,是否有另一种最佳方法来实现流程引擎和外部任务的解耦,以及如何以编程方式捕获外部任务 ID。

谢谢!

【问题讨论】:

    标签: camunda camunda-modeler


    【解决方案1】:

    我认为您需要的基本模式是让实际的“外部”任务客户端与您的引擎在同一台机器上运行。 它会定期订阅任务(使用内部 API,而不是长轮询),然后在完成任务之前通过消息发送/接收触发“真正的”外部工作人员。

    【讨论】:

    • 感谢您的回答。对于 TPS 较低的系统,让外部任务在同一台机器上运行不是问题。该问题与外部任务“通知”外部任务要执行的新活动的方式有关。实际上,遵循 camunda 的标准模式,从引擎外部拉动活动。我想要的是向与要执行的活动相关的外部任务发送消息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-08
    • 1970-01-01
    相关资源
    最近更新 更多