将任务标记为延迟

时间:2013-09-06 16:15:16

标签: java camunda

我需要将用户任务标记为“延迟”,以将其隐藏在默认任务列表视图中,直到达到给定日期。 似乎没有标准功能来实现这一目标,还是存在? 如果没有,我们将不得不在流程变量级别(taskDeferredUntil = Date)上实施变通方法,但是如何实现任务列表查询?我需要从taskservice中过滤任务:

1。)有一个非空的过程变量(本地?)“taskDeferredUntil” 2.)“taskDeferredUntil”的值小于“now”

第一个过滤器很简单,第二个标准上有任何提示吗?

1 个答案:

答案 0 :(得分:1)

我看到三种基本可能性:

  1. 在您编写时分配和过滤任务。不幸的是,在TaskQuery中没有“variableGreaterThan”。因此,您可以编写自己的客户查询(请参阅here)或执行正确的ExecutionQuery(具有variableValueGreaterThan),然后执行任务查询。后者可能不是最佳的,具体取决于查询。提交将taskVariableValueGreaterThan / LowerThan添加到TaskQuery的问题可能是值得的。

  2. 您执行常规任务查询并在内存中过滤它们。可能就足够了 - 取决于性能要求。

  3. 您可以取消分配任务,直到达到延迟日期。然后,您可以尝试利用Timer / JobExecutor基础结构在延迟日期到期时自动重新分配任务(this有点像)。不幸的是,我目前没有时间编写代码 - 但它是一个非常有用的选项。 或者您偶尔会进行一些外部作业检查(对逾期延迟日期执行执行查询 - 重新分配并删除延迟日期 - 我认为保持高效)。

  4. 希望有助于理清选项?也许我忘记了什么?

    干杯 贝恩德