91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

activiti相關配置

發布時間:2020-06-19 15:10:08 來源:網絡 閱讀:1298 作者:獨孤環宇 欄目:開發技術

一、processEngineConfiguration配置


<bean id="processEngineConfiguration"
     class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
    <property name="jdbcUrl" value="jdbc:h3:mem:activiti;DB_CLOSE_DELAY=1000" />
    <property name="jdbcDriver" value="org.h3.Driver" />
    <property name="jdbcUsername" value="sa" />
    <property name="jdbcPassword" value="" />

    <property name="" value="true" />
     
    <property name="" value="false" />
     
    <property name="mailServerHost" value="mail.my-corp.com" />
    <property name="mailServerPort" value="5025" />
    <property name="createDiagramOnDeploy" value="false" /><!--不生成流程定義圖片-->
</bean>

org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration

單獨運行的流程引擎。Activiti會自己處理事務。 默認,數據庫只在引擎啟動時檢測 (如果沒有Activiti的表或者表結構不正確就會拋出異常)。

org.activiti.engine.impl.cfg.StandaloneInMemProcessEngineConfiguration

單元測試時的輔助類。Activiti會自己控制事務。 默認使用H2內存數據庫。數據庫表會在引擎啟動時創建,關閉時刪除。 使用它時,不需要其他配置(除非使用job執行器或郵件功能)。

org.activiti.spring.SpringProcessEngineConfiguration

在Spring環境下使用流程引擎。 參考Spring集成章節。

org.activiti.engine.impl.cfg.JtaProcessEngineConfiguration

單獨運行流程引擎,并使用JTA事務。

databaseSchemaUpdate: 設置流程引擎啟動和關閉時如何處理數據庫表。
false(默認):檢查數據庫表的版本和依賴庫的版本, 如果版本不匹配就拋出異常。
true: 構建流程引擎時,執行檢查,如果需要就執行更新。 如果表不存在,就創建。
create-drop: 構建流程引擎時創建數據庫表, 關閉流程引擎時刪除這些表。


二、數據庫相關配置


1、jdbc方式: 

jdbcUrl: 數據庫的JDBC URL。

jdbcDriver: 對應不同數據庫類型的驅動。

jdbcUsername: 連接數據庫的用戶名。

jdbcPassword: 連接數據庫的密碼。

jdbcMaxActiveConnections: 連接池中處于被使用狀態的連接的最大值。默認為10。

jdbcMaxIdleConnections: 連接池中處于空閑狀態的連接的最大值。

jdbcMaxCheckoutTime: 連接被取出使用的最長時間,超過時間會被強制回收。 默認為20000(20秒)。

jdbcMaxWaitTime: 這是一個底層配置,讓連接池可以在長時間無法獲得連接時, 打印一條日志,并重新嘗試獲取一個連接。(避免因為錯誤配置導致沉默的操作失敗)。 默認為20000(20秒)。

2、dbcp連接池方式:

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" >
  <property name="driverClassName" value="com.mysql.jdbc.Driver" />
  <property name="url" value="jdbc:mysql://localhost:3306/activiti" />
  <property name="username" value="activiti" />
  <property name="password" value="activiti" />
  <property name="defaultAutoCommit" value="false" />
</bean>

<bean id="processEngineConfiguration"
class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">

    <property name="dataSource" ref="dataSource" />
    ...

三、JNDI數據庫配置、支持的數據庫、數據庫創建

http://www.mossle.com/docs/activiti/


四、理解數據庫表的命名

Activiti的表都以ACT_開頭。 第二部分是表示表的用途的兩個字母標識。 用途也和服務的API對應。

ACT_RE_*: 'RE'表示repository。 這個前綴的表包含了流程定義和流程靜態資源 (圖片,規則,等等)。

ACT_RU_*: 'RU'表示runtime。 這些運行時的表,包含流程實例,任務,變量,異步任務,等運行中的數據。 Activiti只在流程實例執行過程中保存這些數據, 在流程結束時就會刪除這些記錄。 這樣運行時表可以一直很小速度很快。

ACT_ID_*: 'ID'表示identity。 這些表包含身份信息,比如用戶,組等等。

ACT_HI_*: 'HI'表示history。 這些表包含歷史數據,比如歷史流程實例, 變量,任務等等。

ACT_GE_*: 通用數據, 用于不同場景下。


五、Job執行器
是管理一系列線程的組件,可以觸發定時器(也包含后續的異步消息)。 在單元測試場景下,很難使用多線程。因此API允許查詢()和執行job (),所以job可以在單元測試中控制。 要避免與job執行器沖突,可以關閉它。
默認,在流程引擎啟動時就會激活。 如果不想在流程引擎啟動后自動激活,可以設置
<property name="jobExecutorActivate" value="false" />



六、配置部署緩存

所有流程定義都被緩存了(解析之后)避免每次使用前都要訪問數據庫, 因為流程定義數據是不會改變的。 默認,不會限制這個緩存。如果想限制流程定義緩存,可以添加如下配置
<property name="processDefinitionCacheLimit" value="10" />

七、日志、映射診斷上下文
需要打印工作流的日志時需要配置,默認不打印日志。

九、事件處理
1、事件監聽器實現:
實現事件監聽器的唯一要求是實現org.activiti.engine.delegate.event.ActivitiEventListener。

public class MyEventListener implements ActivitiEventListener {

  @Override
  public void onEvent(ActivitiEvent event) {
    switch (event.getType()) {

      case JOB_EXECUTION_SUCCESS:
        System.out.println("A job well done!");
        break;

      case JOB_EXECUTION_FAILURE:
        System.out.println("A job has failed...");
        break;

      default:
        System.out.println("Event received: " + event.getType());
    }
  }

  @Override
  public boolean isFailOnException() {
    // The logic in the onEvent method of this listener is not critical, exceptions
    // can be ignored if logging fails...
    return false;
  }
}
方法決定了當事件分發時,方法拋出異常時的行為。 這里返回的是,會忽略異常。 當返回時,異常不會忽略,繼續向上傳播,迅速導致當前命令失敗。 當事件是一個API調用的一部分時(或其他事務性操作,比如job執行), 事務就會回滾。當事件監聽器中的行為不是業務性時,建議返回。
activiti提供了一些基礎的實現,實現了事件監聽器的常用場景。可以用來作為基類或監聽器實現的樣例:
  • org.activiti.engine.delegate.event.BaseEntityEventListener: 這個事件監聽器的基類可以用來監聽實體相關的事件,可以針對某一類型實體,也可以是全部實體。 它隱藏了類型檢測,并提供了三個需要重寫的方法:onCreate(..)onUpdate(..) 和 onDelete(..),當實體創建,更新,或刪除時調用。對于其他實體相關的事件,會調用 onEntityEvent(..)


2、配置:

<bean id="processEngineConfiguration"
     class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
    ...
    <property name="eventListeners">
      <list>
         <bean class="org.activiti.engine.example.MyEventListener" />
      </list>
    </property>
</bean>
<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>

3、在運行階段添加監聽器:

可以通過API(RuntimeService)在運行階段添加或刪除額外的事件監聽器:

void addEventListener(ActivitiEventListener listenerToAdd);

void addEventListener(ActivitiEventListener listenerToAdd, ActivitiEventType... types);

void removeEventListener(ActivitiEventListener listenerToRemove);



向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

隆昌县| 陆河县| 两当县| 和林格尔县| 青阳县| 九龙坡区| 古蔺县| 白河县| 沁水县| 临城县| 南康市| 九台市| 镇原县| 丘北县| 西充县| 枣阳市| 大同市| 定西市| 鲁山县| 南通市| 贵定县| 武川县| 梁河县| 和平区| 博爱县| 佛山市| 金平| 五河县| 钦州市| 瑞丽市| 中阳县| 江都市| 永顺县| 双桥区| 西充县| 金昌市| 大城县| 乌审旗| 榆树市| 安国市| 丰台区|