与 Camunda 流程引擎通信
Communication with Camunda process engine
外部服务可以使用以下代码从 Camunda 流程引擎接收消息。客户端是否定期轮询 Camunda 流程引擎以获取消息?
ExternalTaskClient client = ExternalTaskClient.create().baseUrl(“http://localhost:8080/engine-rest”)
.asyncResponseTimeout(10000)
.build();
client.subscribe(“AdlDMNOtherClient”).lockDuration(1000)…
它使用“长轮询”,因此它不会打开新请求,而是尽可能长时间地保持单个连接,参见 https://github.com/camunda/camunda-external-task-client-java/blob/master/examples/order-handling/src/main/java/org/camunda/bpm/App.java
因此,如果您的问题是:“创建新任务时我的代码会自动收到通知”,答案是肯定的。
如果你的问题是:我会不会有很多HTTP请求,答案是否定的,一般不会。
是的。架构、交互模式(包括长轮询)以及将错误或结果传回流程引擎的方式在此处用一些图表进行了描述:
https://docs.camunda.org/manual/latest/user-guide/process-engine/external-tasks/
这里:
https://docs.camunda.org/manual/latest/user-guide/ext-client/
外部服务可以使用以下代码从 Camunda 流程引擎接收消息。客户端是否定期轮询 Camunda 流程引擎以获取消息?
ExternalTaskClient client = ExternalTaskClient.create().baseUrl(“http://localhost:8080/engine-rest”)
.asyncResponseTimeout(10000)
.build();
client.subscribe(“AdlDMNOtherClient”).lockDuration(1000)…
它使用“长轮询”,因此它不会打开新请求,而是尽可能长时间地保持单个连接,参见 https://github.com/camunda/camunda-external-task-client-java/blob/master/examples/order-handling/src/main/java/org/camunda/bpm/App.java
因此,如果您的问题是:“创建新任务时我的代码会自动收到通知”,答案是肯定的。
如果你的问题是:我会不会有很多HTTP请求,答案是否定的,一般不会。
是的。架构、交互模式(包括长轮询)以及将错误或结果传回流程引擎的方式在此处用一些图表进行了描述:
https://docs.camunda.org/manual/latest/user-guide/process-engine/external-tasks/
这里:
https://docs.camunda.org/manual/latest/user-guide/ext-client/