日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Activiti工作流之事件监听详解-ActivitiEventListener

發(fā)布時(shí)間:2025/3/16 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Activiti工作流之事件监听详解-ActivitiEventListener 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

工作流程事件監(jiān)聽可用于任務(wù)提醒、超時(shí)提醒等的模塊的設(shè)計(jì)。以下是相關(guān)事件的介紹

一、事件監(jiān)聽類型


ENGINE_CREATED

監(jiān)聽器監(jiān)聽的流程引擎已經(jīng)創(chuàng)建完畢,并準(zhǔn)備好接受API調(diào)用。

ENGINE_CLOSED

監(jiān)聽器監(jiān)聽的流程引擎已經(jīng)關(guān)閉,不再接受API調(diào)用。

ENTITY_CREATED

創(chuàng)建了一個(gè)新實(shí)體。實(shí)體包含在事件中。

ENTITY_INITIALIZED

創(chuàng)建了一個(gè)新實(shí)體,初始化也完成了。如果這個(gè)實(shí)體的創(chuàng)建會(huì)包含子實(shí)體的創(chuàng)建,這個(gè)事件會(huì)在子實(shí)體都創(chuàng)建/初始化完成后被觸發(fā),這是與ENTITY_CREATED的區(qū)別。

ENTITY_UPDATED

更新了已存在的實(shí)體。實(shí)體包含在事件中。

ENTITY_DELETED

刪除了已存在的實(shí)體。實(shí)體包含在事件中。

ENTITY_SUSPENDED

暫停了已存在的實(shí)體。實(shí)體包含在事件中。會(huì)被ProcessDefinitions, ProcessInstances??Tasks拋出。

ENTITY_ACTIVATED

激活了已存在的實(shí)體,實(shí)體包含在事件中。會(huì)被ProcessDefinitions, ProcessInstances??Tasks拋出。

JOB_EXECUTION_SUCCESS

作業(yè)執(zhí)行成功。job包含在事件中。

JOB_EXECUTION_FAILURE

作業(yè)執(zhí)行失敗。作業(yè)和異常信息包含在事件中。

JOB_RETRIES_DECREMENTED

因?yàn)樽鳂I(yè)執(zhí)行失敗,導(dǎo)致重試次數(shù)減少。作業(yè)包含在事件中。

TIMER_FIRED

觸發(fā)了定時(shí)器。job包含在事件中。

JOB_CANCELED

取消了一個(gè)作業(yè)。事件包含取消的作業(yè)。作業(yè)可以通過API調(diào)用取消,???任務(wù)完成后對(duì)應(yīng)的邊界定時(shí)器也會(huì)取消,在新流程定義發(fā)布時(shí)也會(huì)取消。

ACTIVITY_STARTED

一個(gè)節(jié)點(diǎn)開始執(zhí)行

ACTIVITY_COMPLETED

一個(gè)節(jié)點(diǎn)成功結(jié)束

ACTIVITY_SIGNALED

一個(gè)節(jié)點(diǎn)收到了一個(gè)信號(hào)

ACTIVITY_MESSAGE_RECEIVED

一個(gè)節(jié)點(diǎn)收到了一個(gè)消息。在節(jié)點(diǎn)收到消息之前觸發(fā)。收到后,會(huì)觸發(fā)ACTIVITY_SIGNALACTIVITY_STARTED,這會(huì)根據(jù)節(jié)點(diǎn)的類型(邊界事件,事件子流程開始事件)

ACTIVITY_ERROR_RECEIVED

一個(gè)節(jié)點(diǎn)收到了一個(gè)錯(cuò)誤事件。在節(jié)點(diǎn)實(shí)際處理錯(cuò)誤之前觸發(fā)。???事件的activityId對(duì)應(yīng)著處理錯(cuò)誤的節(jié)點(diǎn)。?這個(gè)事件后續(xù)會(huì)是ACTIVITY_SIGNALLEDACTIVITY_COMPLETE?如果錯(cuò)誤發(fā)送成功的話。

UNCAUGHT_BPMN_ERROR

拋出了未捕獲的BPMN錯(cuò)誤。流程沒有提供針對(duì)這個(gè)錯(cuò)誤的處理器。???事件的activityId為空。

ACTIVITY_COMPENSATE

一個(gè)節(jié)點(diǎn)將要被補(bǔ)償。事件包含了將要執(zhí)行補(bǔ)償?shù)墓?jié)點(diǎn)id

VARIABLE_CREATED

創(chuàng)建了一個(gè)變量。事件包含變量名,變量值和對(duì)應(yīng)的分支或任務(wù)(如果存在)。

VARIABLE_UPDATED

更新了一個(gè)變量。事件包含變量名,變量值和對(duì)應(yīng)的分支或任務(wù)(如果存在)。

VARIABLE_DELETED

刪除了一個(gè)變量。事件包含變量名,變量值和對(duì)應(yīng)的分支或任務(wù)(如果存在)。

TASK_ASSIGNED

任務(wù)被分配給了一個(gè)人員。事件包含任務(wù)。

TASK_CREATED

創(chuàng)建了新任務(wù)。它位于ENTITY_CREATE事件之后。當(dāng)任務(wù)是由流程創(chuàng)建時(shí),?? ??這個(gè)事件會(huì)在TaskListener執(zhí)行之前被執(zhí)行。

TASK_COMPLETED

任務(wù)被完成了。它會(huì)在ENTITY_DELETE事件之前觸發(fā)。當(dāng)任務(wù)是流程一部分時(shí),事件會(huì)在流程繼續(xù)運(yùn)行之前,???后續(xù)事件將是ACTIVITY_COMPLETE,對(duì)應(yīng)著完成任務(wù)的節(jié)點(diǎn)。

TASK_TIMEOUT

任務(wù)已超時(shí),在TIMER_FIRED事件之后,會(huì)觸發(fā)用戶任務(wù)的超時(shí)事件,?? ??當(dāng)這個(gè)任務(wù)分配了一個(gè)定時(shí)器的時(shí)候。

PROCESS_COMPLETED

流程已結(jié)束。在最后一個(gè)節(jié)點(diǎn)的ACTIVITY_COMPLETED事件之后觸發(fā)。?當(dāng)流程到達(dá)的狀態(tài),沒有任何后續(xù)連線時(shí),?流程就會(huì)結(jié)束。

MEMBERSHIP_CREATED

用戶被添加到一個(gè)組里。事件包含了用戶和組的id

MEMBERSHIP_DELETED

用戶被從一個(gè)組中刪除。事件包含了用戶和組的id

MEMBERSHIPS_DELETED

所有成員被從一個(gè)組中刪除。在成員刪除之前觸發(fā)這個(gè)事件,所以他們都是可以訪問的。???因?yàn)樾阅芊矫娴目紤],不會(huì)為每個(gè)成員觸發(fā)單獨(dú)的MEMBERSHIP_DELETED事件。



監(jiān)聽接口org.activiti.engine.delegate.event.ActivitiEventListener

二、配置監(jiān)聽接口

  • <bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
  • ...
  • <property name="eventListeners">
  • <list>
  • <bean class="org.activiti.engine.example.MyEventListener" />
  • </list>
  • </property>
  • </bean>
  • 三、監(jiān)聽特殊事件

  • <bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
  • ...
  • <property name="typedEventListeners">
  • <map>
  • <entry key="JOB_EXECUTION_SUCCESS,JOB_EXECUTION_FAILURE" >
  • <list>
  • <bean class="org.activiti.engine.example.MyJobEventListener" />
  • </list>
  • </entry>
  • </map>
  • </property>
  • </bean>
  • 這里舉一個(gè)代碼例子:

  • public class ActivitiMessageListener implements ActivitiEventListener {
  • ?
  • public boolean isFailOnException() {
  • return false;
  • }
  • ?
  • public void onEvent(ActivitiEvent event) {
  • switch (event.getType()) {
  • case ACTIVITY_COMPENSATE:
  • // 一個(gè)節(jié)點(diǎn)將要被補(bǔ)償。事件包含了將要執(zhí)行補(bǔ)償?shù)墓?jié)點(diǎn)id。
  • break;
  • case ACTIVITY_COMPLETED:
  • // 一個(gè)節(jié)點(diǎn)成功結(jié)束
  • break;
  • case ACTIVITY_ERROR_RECEIVED:
  • // 一個(gè)節(jié)點(diǎn)收到了一個(gè)錯(cuò)誤事件。在節(jié)點(diǎn)實(shí)際處理錯(cuò)誤之前觸發(fā)。 事件的activityId對(duì)應(yīng)著處理錯(cuò)誤的節(jié)點(diǎn)。 這個(gè)事件后續(xù)會(huì)是ACTIVITY_SIGNALLED或ACTIVITY_COMPLETE, 如果錯(cuò)誤發(fā)送成功的話。
  • break;
  • case ACTIVITY_MESSAGE_RECEIVED:
  • // 一個(gè)節(jié)點(diǎn)收到了一個(gè)消息。在節(jié)點(diǎn)收到消息之前觸發(fā)。收到后,會(huì)觸發(fā)ACTIVITY_SIGNAL或ACTIVITY_STARTED,這會(huì)根據(jù)節(jié)點(diǎn)的類型(邊界事件,事件子流程開始事件)
  • break;
  • case ACTIVITY_SIGNALED:
  • // 一個(gè)節(jié)點(diǎn)收到了一個(gè)信號(hào)
  • break;
  • case ACTIVITY_STARTED:
  • // 一個(gè)節(jié)點(diǎn)開始執(zhí)行
  • break;
  • case CUSTOM:
  • break;
  • case ENGINE_CLOSED:
  • // 監(jiān)聽器監(jiān)聽的流程引擎已經(jīng)關(guān)閉,不再接受API調(diào)用。
  • break;
  • case ENGINE_CREATED:
  • // 監(jiān)聽器監(jiān)聽的流程引擎已經(jīng)創(chuàng)建完畢,并準(zhǔn)備好接受API調(diào)用。
  • break;
  • case ENTITY_ACTIVATED:
  • // 激活了已存在的實(shí)體,實(shí)體包含在事件中。會(huì)被ProcessDefinitions, ProcessInstances 和 Tasks拋出。
  • break;
  • case ENTITY_CREATED:
  • // 創(chuàng)建了一個(gè)新實(shí)體。實(shí)體包含在事件中。
  • break;
  • case ENTITY_DELETED:
  • // 刪除了已存在的實(shí)體。實(shí)體包含在事件中
  • break;
  • case ENTITY_INITIALIZED:
  • // 創(chuàng)建了一個(gè)新實(shí)體,初始化也完成了。如果這個(gè)實(shí)體的創(chuàng)建會(huì)包含子實(shí)體的創(chuàng)建,這個(gè)事件會(huì)在子實(shí)體都創(chuàng)建/初始化完成后被觸發(fā),這是與ENTITY_CREATED的區(qū)別。
  • break;
  • case ENTITY_SUSPENDED:
  • // 暫停了已存在的實(shí)體。實(shí)體包含在事件中。會(huì)被ProcessDefinitions, ProcessInstances 和 Tasks拋出。
  • break;
  • case ENTITY_UPDATED:
  • // 更新了已存在的實(shí)體。實(shí)體包含在事件中。
  • break;
  • case JOB_EXECUTION_FAILURE:
  • // 作業(yè)執(zhí)行失敗。作業(yè)和異常信息包含在事件中。
  • break;
  • case JOB_EXECUTION_SUCCESS:
  • // 作業(yè)執(zhí)行成功。job包含在事件中。
  • break;
  • case JOB_RETRIES_DECREMENTED:
  • // 因?yàn)樽鳂I(yè)執(zhí)行失敗,導(dǎo)致重試次數(shù)減少。作業(yè)包含在事件中。
  • break;
  • case MEMBERSHIPS_DELETED:
  • // 所有成員被從一個(gè)組中刪除。在成員刪除之前觸發(fā)這個(gè)事件,所以他們都是可以訪問的。 因?yàn)樾阅芊矫娴目紤],不會(huì)為每個(gè)成員觸發(fā)單獨(dú)的MEMBERSHIP_DELETED事件。
  • break;
  • case MEMBERSHIP_CREATED:
  • // 用戶被添加到一個(gè)組里。事件包含了用戶和組的id。
  • break;
  • case MEMBERSHIP_DELETED:
  • // 用戶被從一個(gè)組中刪除。事件包含了用戶和組的id。
  • break;
  • case TASK_ASSIGNED:
  • // 任務(wù)被分配給了一個(gè)人員。事件包含任務(wù)。
  • break;
  • case TASK_COMPLETED:
  • // 任務(wù)被完成了。它會(huì)在ENTITY_DELETE事件之前觸發(fā)。當(dāng)任務(wù)是流程一部分時(shí),事件會(huì)在流程繼續(xù)運(yùn)行之前, 后續(xù)事件將是ACTIVITY_COMPLETE,對(duì)應(yīng)著完成任務(wù)的節(jié)點(diǎn)。
  • break;
  • case TIMER_FIRED:
  • // 觸發(fā)了定時(shí)器。job包含在事件中。
  • break;
  • case UNCAUGHT_BPMN_ERROR:
  • break;
  • case VARIABLE_CREATED:
  • break;
  • case VARIABLE_DELETED:
  • break;
  • case VARIABLE_UPDATED:
  • break;
  • default:
  • break;
  • }
  • }
  • ?
  • }
  • 新人創(chuàng)作打卡挑戰(zhàn)賽發(fā)博客就能抽獎(jiǎng)!定制產(chǎn)品紅包拿不停!

    總結(jié)

    以上是生活随笔為你收集整理的Activiti工作流之事件监听详解-ActivitiEventListener的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。