ExecutionListener,TaskListener流程監聽 和任務監聽


1.ExecutionListener

流程實例的啟動和結束。

選中一條連線。

節點的開始和結束。

網關的開始和結束。

中間事件的開始和結束。

開始時間結束或結束事件開始。

2.TaskListener

    任務偵聽器:用於在任務相關的事件發生時執行一段java邏輯或者是表達式

3. 代碼實現 

@Slf4j
public class MyExecutionListener implements ExecutionListener, TaskListener {
    /**
     * 監聽開始結束
     * ExecutionListener類的實現
     * @param execution
     */
    @Override
    public void notify(DelegateExecution execution) {
        String eventName = execution.getEventName();
        // ActivitiEventType.PROCESS_STARTED
        if ("start".equals(eventName)) {
            // 流程開始
            log.info("start......");
        } else if ("end".equals(eventName)) {
            // 流程結束
            log.info("end......");
        } else if ("take".equals(eventName)) {
            // 連線監聽器
            log.info("take......");
        }
    }
 
    /**
     * 任務節點的監聽
     * TaskListener類實現
     * 說明: usertask2節點配置了處理人所以觸發assignment事件監聽,
     * 當任務運轉到usertask2的時候觸發了create事件。 這里我們也可以得出一個結論:assignment事件比create先執行。
     * 任務完成的時候,觸發complete事件,因為任務完成之后,要從ACT_RU_TASK中刪除這條記錄,所以觸發delete事件
     * @param delegateTask
     */
    @Override
    public void notify(DelegateTask delegateTask) {
        String eventName = delegateTask.getEventName();
        // ActivitiEventType.PROCESS_STARTED
        if ("create".endsWith(eventName)) {
            log.info("create=========");
        } else if ("assignment".endsWith(eventName)) {
            log.info("assignment========");
        } else if ("complete".endsWith(eventName)) {
            log.info("complete===========");
        } else if ("delete".endsWith(eventName)) {
            log.info("delete=============");
        }
        // delegateTask 可以操作activiti引擎的一些東西
    }
}
4. 綁定監聽的類

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM