任务超时监控

监控任务的时限

时限是指任务超过指定时间或在一个固定周期时,触发一个指定的动作,并记录到监控日志中,供开发者进一步利用。

只有处于活跃的人工任务受该应用的监控。活跃的人工任务指在WFC_TASK表,类型为1(常规)的人工待办任务。例如加签、传阅、暂停的任务,都不会加入到监控范围内。

时限策略的配置不在本文介绍,本应用是对这些配置的监控实现。有关监控频率和精准度,请参考这里

监控机制

  • 超过时间,触发一次
  • 在固定的周期频率里(如年、季、月、周、日),循环触发多次,直至任务被结束

执行动作

  • 无动作,只记录日志
  • 向下自动执行
  • 自动回退到上个节点
  • 给办理者发送超时提醒
  • 触发一个自定义事件
  • 跳转到指定节点
  • 结束流程
  • 执行一个SQL语句

无动作,只记录日志

什么都不做,只是将该任务记录至监控日志,供开发者使用

向下自动执行

该任务在审批记录中标记为超时自动执行,并调用流程引擎自动向下执行。

等同于执行如下API操作

ProcessExecuteQuery query = SDK.getTaskAPI().completeTask(task.getId(), task.getTarget());

如果下个人工节点在设计时刻没有提供参与者,该任务将被标记为无人执行

自动回退到上个节点

该任务在审批记录中标记为超时自动回退,并调用流程引擎的回退操作。

等同于执行如下API操作

// 前一个节点的人工任务
HistoryTaskInstance parentTask = TaskAPIManager.getInstance().findUserTaskByPrePath(task);
TaskInstance newTask = SDK.getTaskAPI().rollbackTask(task.getId(), parentTask.getActivityDefId(), parentTask.getTarget(), true, "超时自动回退");

给办理者发送超时提醒

给该任务的办理者发超时提醒,提醒方式有五种:邮件、短信、企业微信、阿里钉钉、飞书。使用该策略的准备条件:

触发一个自定义事件

执行一个开发者的Class类,该类要求继承了com.actionsoft.bpms.bpmn.engine.listener.ValueListener父类,超时的任务实例将以ProcessExecutionContext参数传递到execute方法。

例如:

public class MyTimeoutEvent extends ValueListener implements ValueListenerInterface {

    public String execute(ProcessExecutionContext ctx) throws Exception {
        ...
        return "要记录什么信息";// 少于128字符
    }
}

该类编译的jar文件必须存放在该流程模型所在应用的lib下。

跳转到指定节点

该任务在审批记录中标记为超时跳转,跳转到指定的节点,指定节点任务不是顺序多实例或并行多实例时,参与者不要指定多个。

结束流程

该任务在审批记录中标记为终止,并调用流程引擎的终止操作。

执行一个SQL语句

通过计时方案,到时间定时去执行定义的SQL语句。



Seven
 010-62962343-690
 liujx@actionsoft.com.cn
感谢您对该文档的关注!如果您对当前页面内容有疑问或好的建议,请与我联系。如果您需要解答相关技术问题请登录AWS客户成功社区