Activiti 6.0 新特性 速遞

說到工做流、Activiti,一般你們腦海裏一閃的是:「OA系統」、「表單」、「人工審批流轉」。服務器

不能否認,OA系統裏的表單審批流轉是工做流的典型應用。併發

可是工做流的應用範圍不只限於此,若是提起工做流、Activiti,你的腦海裏一閃而過的是「Timer」、「Job Executor」、「Async Executor」、「Retries」、「Lock Expire Time」、「Thread Pool」等,至少說明你對Activiti已經有了一個進階的認識。異步

2016年6月初 Activiti 5.21.0 正式版已經發布,對一些已知的Bug作了修復。
須要特別指出的是,有個使人頭疼的bug也在該版本中修復。
即:當一些job被 Activiti Engine 鎖定的時候(即act_ru_job這張表裏,當lock_exp_time_有值、dudate_爲空而且RETRIES_ > 0的時候),若是遇到服務器重啓或者服務器宕機,服務器正常後這些被鎖定的job將不會再被自動執行。async

5.21.0 的發佈沒有太多亮點,而 Activiti 6.0 有很多新特性值得期待。
在過去的一年裏,Activiti團隊作出最的使人矚目的舉動是在 5.17.0 開始使用Async Executor,目的在於替代舊的Job Executor。此舉大幅度地提升了Activiti處理異步任務的能力和效率。

Activiti團隊領袖Joram Barrez曾在博客中表示說,在發佈 Activiti 6.0 正式版以前,將會對Async Executor進行優化和重構,讓Activiti更加高效地處理高負載高併發任務。高併發

果不其然,臨近 Activiti 6.0 正式版的發佈,在Activiti的Github上能夠看到,Activiti團隊對Async Executor進行了顛覆性的重構。優化

 

截至到今天(2016年8月22),Acitiviti 6.0 最值得期待的新特性,簡要歸納以下:
1. Activiti 6.0開始,只支持Async Executor。
2. Async Executor 將以可插拔的方式,支持兩種模式。
3. 模式1:Thread Pool backed Async Executor(經過線程池實現Async Executor)
4. 模式2:Message Queue based Async Executor(經過消息隊列實現Async Executor)
5. ACT_RU_JOB表被拆分,減少了以往處理timer和異步任務時輪詢這張表的壓力。
6. ACT_RU_JOB表被拆分爲了:
        ACT_RU_TIMER_JOB、
        ACT_RU_JOB、
        ACT_RU_DEADLETTER_JOB、
        ACT_RU_SUSPENDED_JOB。
7. Job的重試次數將可配(經過設置asyncExecutorNumberOfRetries的值),默認次數仍是爲3。線程

 

由此能夠窺見,Activiti 6.0 引入 Message Queue Based Async Executor 後,處理高負載高併發任務的能力將發生質的飛躍。
固然,筆者相信 Thread Pool Backed Async Executor 已經在很大程度知足了絕大多數使用場景的需求。
Message Queue Based Async Executor 的引入,錦上添花,爲咱們應對往後更高的負載、併發任務給了更多的信心。隊列

相關文章
相關標籤/搜索