5.6.任务过期处理

2023-07-03 17:19 更新
任务过期处理与任务到达提醒类似,唯一不同的地方是任务过期后,除了可以发送消息外,还允许用户自定义其它类型的动作,关于任务过期之后发送消息,这里就不描述了,因为和任务提醒发消息是一样的,我们着重来看看过期后如何进行动作的自定义。如下图所示:

可以看到系统提供了默认自定义处理器只有一个,从其bean的id定义来看,这个bean对任务过期不作任何操作,所以我们必须要自己定义,自己定义的方法就是实现ITaskOverdueProcessor接口,该接口源码如下:
ITaskOverdueProcessor接口源码
package com.bstek.bdf2.jbpm4.job;
/**
 * @author Jacky.gao
 * @since 2013-4-26
 */
public interface ITaskOverdueProcessor {
 void process(String taskId);
}
接口只有一个方法,非常简单,只有一个任务id的参数,实现好接口后,我们需要做的就是将实现类配置到spring当中即可(BDF2中几乎所有的接口实现类都是通过配置到spring当中,利用spring的类发现机制实现),这样在界面中自定义处理器中就可以看到我们自定义的处理器的bean的id。

默认情况下,系统对任务过期天数的计算是以自然日为基础的,如果您需要除去节假日或其它一些日期,那么你可以实现ICalculateOverdueTaskReminder接口,自己决定当前任务是否过期,这个接口的源码如下:
ICalculateOverdueTaskReminder接口源码
package com.bstek.bdf2.jbpm4.job.reminder;
import java.util.Date;
/**
 * @author Jacky.gao
 * @since 2013-4-26
 */
public interface ICalculateOverdueTaskReminder {
 /**
 * 根据业务环境计算当前日期下是否执行任务过期提供动作
 * @param overdueDays 任务过期天数
 * @param createDate 任务的创建日期
 * @return 返回true表示执行任务过期提供动作,false表示不执行
 */
 boolean calculateOverdue(int overdueDays,Date createDate);
}
接口的实现类编写完成之后,同样需要将其配置到Spring环境当中。

同样,一旦我们配置了任务过期消息提醒功能(非自定义处理器方式),那么在完成任务时,我们一定要记得调用IBpmService接口中的cancelTaskReminder,不然任务虽然完成了,但任务提醒还会继续运行。
以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号