Java 将任务标记为已推迟

Java 将任务标记为已推迟,java,camunda,Java,Camunda,我需要将用户任务标记为“延迟”以将其隐藏在默认任务列表视图中,直到达到给定日期为止。 似乎没有标准的功能来实现这一点,或者是否有? 如果没有,我们将不得不在流程变量级别(taskDeferredUntil=Date)上实现一个变通方法,但是如何实现tasklist查询呢?我需要从taskservice筛选以下任务: 1.)有一个非空的流程变量(本地?“taskDeferredUntil” 2.“taskDeferredUntil”的值小于“now” 第一个过滤器很简单,关于第二个标准有什么提示吗

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

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


第一个过滤器很简单,关于第二个标准有什么提示吗?

我看到了三种基本的可能性:

  • 任务在您编写时被分配和筛选。不幸的是,TaskQuery中没有“variableGreaterThan”。因此,您可以编写自己的客户查询(请参阅),或者执行适当的ExecutionQuery(其变量值大于),然后执行任务查询。根据查询的不同,后者可能不是最优的。将taskVariableValueGreaterThan/LowerThan添加到TaskQuery可能值得提交一个问题

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

  • 您可以取消分配任务,直到达到延迟日期。然后,您可以尝试利用Timer/JobExecutor基础结构,在延迟日期到期时自动重新分配任务(有点类似)。不幸的是,我现在没有时间编写一个示例——但这是一个有趣的选择)。 或者偶尔会有一些外部作业检查(对过期的延迟日期执行查询-重新分配并删除延迟日期-我认为可以保持效率)

  • 希望这有助于理清选项?也许我忘了什么

    干杯 伯纳德