gpt4 book ai didi

java - 在运行时在 Camunda 中添加事件处理程序(ExecutionListener 或 TaskListener)

转载 作者:行者123 更新时间:2023-11-30 06:48:57 24 4
gpt4 key购买 nike

根据 Camunda 的文档 (https://docs.camunda.org/manual/latest/user-guide/process-applications/process-application-event-listeners/),可以将“全局”事件处理程序(ExecutionListener 或 TaskListener)添加到 ProcessApplication

尽管如此,我还没有找到在运行时添加类似(“全局”)事件处理程序的方法。此功能在 Activiti 中使用引擎的 RuntimeService ( https://www.activiti.org/javadocs/org/activiti/engine/RuntimeService.html#addEventListener-org.activiti.engine.delegate.event.ActivitiEventListener- ) 的方法 addEventListener 存在,但在 Camunda 的 RuntimeService 中不再存在。

如何在运行时添加“全局”事件处理程序?
注意:无法修改要添加事件处理程序的ProcessApplication,因为我想从不同的库中添加处理程序。

谢谢大家,

最佳答案

社区扩展camunda-bpm-reactor允许您注册一个事件总线,该事件总线在每次触发监听器时传播事件。然后,您可以在这些事件上注册监听器。所以 bpmn 和监听器代码在运行时是耦合的。

@CamundaSelector(type = "userTask", event = TaskListener.EVENTNAME_CREATE)
public class TaskCreateListener implements TaskListener {

public TaskCreateListener(EventBus eventBus) {
eventBus.register(this);
}

@Override
public void notify(DelegateTask delegateTask) {
...
}
}

关于java - 在运行时在 Camunda 中添加事件处理程序(ExecutionListener 或 TaskListener),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43492731/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com