5.6.任務過期處理

2023-07-03 17:19 更新
任務過期處理與任務到達提醒類似,唯一不同的地方是任務過期后,除了可以發(fā)送消息外,還允許用戶自定義其它類型的動作,關于任務過期之后發(fā)送消息,這里就不描述了,因為和任務提醒發(fā)消息是一樣的,我們著重來看看過期后如何進行動作的自定義。如下圖所示:

可以看到系統(tǒng)提供了默認自定義處理器只有一個,從其bean的id定義來看,這個bean對任務過期不作任何操作,所以我們必須要自己定義,自己定義的方法就是實現(xiàn)ITaskOverdueProcessor接口,該接口源碼如下:
ITaskOverdueProcessor接口源碼
package com.bstek.bdf2.jbpm4.job;
/**
 * @author Jacky.gao
 * @since 2013-4-26
 */
public interface ITaskOverdueProcessor {
 void process(String taskId);
}
接口只有一個方法,非常簡單,只有一個任務id的參數(shù),實現(xiàn)好接口后,我們需要做的就是將實現(xiàn)類配置到spring當中即可(BDF2中幾乎所有的接口實現(xiàn)類都是通過配置到spring當中,利用spring的類發(fā)現(xiàn)機制實現(xiàn)),這樣在界面中自定義處理器中就可以看到我們自定義的處理器的bean的id。

默認情況下,系統(tǒng)對任務過期天數(shù)的計算是以自然日為基礎的,如果您需要除去節(jié)假日或其它一些日期,那么你可以實現(xiàn)ICalculateOverdueTaskReminder接口,自己決定當前任務是否過期,這個接口的源碼如下:
ICalculateOverdueTaskReminder接口源碼
package com.bstek.bdf2.jbpm4.job.reminder;
import java.util.Date;
/**
 * @author Jacky.gao
 * @since 2013-4-26
 */
public interface ICalculateOverdueTaskReminder {
 /**
 * 根據(jù)業(yè)務環(huán)境計算當前日期下是否執(zhí)行任務過期提供動作
 * @param overdueDays 任務過期天數(shù)
 * @param createDate 任務的創(chuàng)建日期
 * @return 返回true表示執(zhí)行任務過期提供動作,false表示不執(zhí)行
 */
 boolean calculateOverdue(int overdueDays,Date createDate);
}
接口的實現(xiàn)類編寫完成之后,同樣需要將其配置到Spring環(huán)境當中。

同樣,一旦我們配置了任務過期消息提醒功能(非自定義處理器方式),那么在完成任務時,我們一定要記得調(diào)用IBpmService接口中的cancelTaskReminder,不然任務雖然完成了,但任務提醒還會繼續(xù)運行。
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號