【问题标题】:Completing all Camunda tasks in db by hand手动完成 db 中的所有 Camunda 任务
【发布时间】:2021-09-30 14:42:29
【问题描述】:

我目前正在对使用 Camunda(嵌套而非独立)的 Spring-boot 项目进行性能测试。

在 perf 运行之间,Camunda db 正在填充等待执行的任务,正如预期的那样。

当我完成性能测试时,有一些任务处于这种状态。我在 perf-test 运行之间重用 db。

我现在面临的问题是,当我开始新的性能测试时,正在尝试这些挂起的任务,这不是我的意图。我想保留填充的数据库,但不轮询任何以前的任务。

我的问题是,是否可以在启动服务器之前将所有待处理任务更改为已完成?我查看了文档,他们似乎主要建议使用 REST 调用,但我认为我的版本中没有启用 REST。这可以在启动服务器之前通过 sql 完成吗?

【问题讨论】:

    标签: sql spring-boot scheduled-tasks camunda


    【解决方案1】:

    您可以注册一个在引擎启动时调用的组件,并使用 java API 以编程方式关闭所有打开的任务。

    kotlin 代码示例:

    ...
    @EventListener
    fun onStart(evt: PostDeployEvent) {
       val taskService = evt.processEngine.taskService
       taskService.createTaskQuery().active().list().forEach { 
          taskService.complete(it.id) 
       }
    }
    

    注意:根据您正在运行的进程,完成任务可能不足以清除运行时...使用 RuntimeService 取消所有正在运行的实例 (runtimeService.deleteProcessInstance) 可能是另一种选择。

    【讨论】:

      猜你喜欢
      • 2022-12-21
      • 1970-01-01
      • 2020-05-13
      • 2013-10-19
      • 1970-01-01
      • 1970-01-01
      • 2016-04-20
      • 1970-01-01
      • 2021-06-12
      相关资源
      最近更新 更多