背景:
我們做流程的是,任務監聽是非常重要的一個組件,那么我們如何來制定任務監聽器呢?
第一:任務監聽有三種事件類型
1. create :在任務創建且所有任務屬性設置完成之后才觸發。
2.assignment :在任務被分配給某個班里人之后觸發,它是在create事件觸發前被觸發。
3.complete:在配置了監聽器的上一個任務完成是觸發,也就是說運行期任務刪除之前觸發。
第二:任務監聽器的三種監聽器執行類型
1.class:需要類的全路徑
實例:
public class StartTaskListener implements TaskListener { @Override public void notify(DelegateTask delegateTask) { logger.debug("調用了任務監聽器"); } }
2.expression:定義一個表達式,類似EL的語法
3.delegateExpression:指的是一個實現監聽接口
@Component(value = "taskBusinessCallListener") public class TaskBusinessCallListener extends BusinessCallListener implements TaskListener { /** * dubbo的類名 */ private FixedValue clazzName; /** * 方法名 */ private FixedValue method; /** * 版本號 */ private FixedValue version; /** * 參數 多個的話用分號隔開 實例 userCode:00004737;status:1 */ private FixedValue params; @Override public void notify(DelegateTask delegateTask) { String processInstanceId = delegateTask.getProcessInstanceId(); //執行回調 this.callBack(processInstanceId, clazzName.getExpressionText(), method.getExpressionText(), version.getExpressionText(), params.getExpressionText()); } }