当前位置: 首页 > 知识库问答 >
问题:

jBPM信号事件始终完成工作项

邓威
2023-03-14

我已经实现了一个自定义workitemhandler,我只想通过外部REST调用来完成它。因此,itemsexecuteWorkItem()方法不调用管理器。completeWorkItem(workItem.getId(),results) 在末尾,这完全可以。在我的流程中,我还为这个工作项分配了一个信号事件,它也被外部REST调用。这两件事都按预期工作,但我不明白的是,每次我给工作项发信号时,它也会自动完成工作项,这导致了一个问题,即流程会继续按照其常规路径和信号路径运行。但发出信号的原因是为了中断进程,使其仅遵循信号路径。

可在此处找到此过程的图像http://cl.ly/image/0F3L3E2w2l0j.在这个例子中,我发出了“失败传输”的信号,但其余的也会执行,即使没有完成任何工作项。

我正在使用jBPM 6.1 Final。

提前感谢您的帮助。

共有1个答案

茅秦斩
2023-03-14

没关系,我找到了这种行为的原因。实现的自定义工作项处理程序

public void abortWorkItem(WorkItem workItem, WorkItemManager manager) {
        manager.abortWorkItem(workItem.getId());
    } 

删除管理器后。abortWorkItem(workItem.getId()) ,进程按预期运行。

 类似资料:
  • 完成信号量接口 结构体 struct   rt_completion   completion控制块 更多...   函数 void  rt_completion_init (struct rt_completion *completion)   初始化completion   rt_err_t  rt_completion_wait (struct rt_completion *completi

  • 我们的应用程序在库伯内特斯上运行作业。我们目前正在查询kubernetes,向用户反馈作业的状态,一旦作业完成,还想向他们提供作业(pod)日志。这种情况经常发生,例如每30次。我们现在有如此多的作业,以至于这个pod查询和处理信息需要太长时间。 如果能被告知kubernetes事件就太好了:一个pod正在等待、计划、拉动、运行、成功/失败。不确定在我们的应用程序中获取这些事件的最佳方式是什么,但

  • 事件 signals and slots 被其他人翻译成信号和槽机制,(⊙o⊙)…我这里还是不翻译好了。 所有的应用都是事件驱动的。事件大部分都是由用户的行为产生的,当然也有其他的事件产生方式,比如网络的连接,窗口管理器或者定时器等。调用应用的exec_()方法时,应用会进入主循环,主循环会监听和分发事件。 在事件模型中,有三个角色: 事件源 事件 事件目标 事件源就是发生了状态改变的对象。事件是

  • 事件 signals and slots 被其他人翻译成信号和槽机制,(⊙o⊙)… 我这里还是不翻译好了。 所有的应用都是事件驱动的。事件大部分都是由用户的行为产生的,当然也有其他的事件产生方式,比如网络的连接,窗口管理器或者定时器等。调用应用的 exec_() 方法时,应用会进入主循环,主循环会监听和分发事件。 在事件模型中,有三个角色: 事件源 事件 事件目标 事件源就是发生了状态改变的对象。

  • 我想生成一个签名的APK,但我不能。 这就是我所做的: 使用以下命令生成密钥库文件: 遵循本指南: https://facebook.github.io/react-native/docs/signed-apk-android.html#content 使用此命令生成的APK(在窗口上): 它总是生成“app release unsigned.apk”文件,不知道为什么。 更新 解决了,我忘了把这

  • 这部分教程,我们探索 PyQt6 程序中的事件和信号。 PyQt6 中的事件 GUI 应用程序是事件驱动的。事件主要由应用程序的用户触发,但也可以通过其他方式生成,例如 Internet 连接、窗口管理器或定时器。当我们调用应用程序的 exec() 方法时,应用程序进入主循环。 主循环获取事件并将它们发送到对象。 在事件模型里,有三个要素: 事件源 event source 事件对象 event