2017-02-15 111 views
0

我們目前正在研究Activiti處理組織中的審批事件,但我們正在尋找在集裝箱化環境*中構建REST API。容器化的tomcat實例將共享一個持久層,但由於實例的短暫性質,我們不能擁有Activiti維護的任何狀態。短命環境中的Activiti Timer事件

我們沒有想象這是一個問題,但對於定時邊界事件,並將其綁到一個更廣泛的問題有關如何Activiti的定時器工作。定時器的執行是保存在(永久)持久層中的日期/時間表達式的函數(因此在引擎與該表達式交互時對其進行評估)?或者它是一個保持運行時鐘的過程,然後在過期時觸發?後者是不可取的,但如果是這種情況,那麼當Activiti層是無常的時候,我們如何建議我們跟蹤邊界定時器?

*(使用可在任何時間被吹走短暫的Tomcat層)

回答

0

真的很好的問題,我會在你想出的建築很感興趣。

定時器事件由Job Scheduler處理。 在更新版本的Activiti(> 5,16我相信)中,Timer和Async隊列管理器已經分離,但仍使用相同的底層數據表(ACT_JOB)。

每個作業執行程序都會標記時間已到期的計時器事件塊,並將它們放入計時器隊列進行處理。您可以設置每次傳遞的任務數以及引擎配置中的超時和隊列大小。因此,對於您的具體問題:「計時器的執行是保存在(永久)持久層中的日期/時間表達式的函數(因此在引擎與該表達式交互時對其進行評估)?或者是一個進程保持一個運行時鐘,然後在它到期時觸發?「

定時器ACT_JOB表包含定時器線程在查詢要處理的下一組作業時將使用的DueDate(DateTime)。 其中,如果我理解你的語言選項1.

格雷格

變化