[英]Long running activiti service task
我們在一個 activiti 過程中有很多自動化任務,這需要花費大量時間才能完成。 像 REST 調用外部系統或 JMS 消息發送和接收響應。
我可以使用兩個選項來做到這一點:
有人可以驗證在活動中處理這個問題的正確方法或更好的方法嗎?
如果您可以控制接收器服務,您還可以使用中間消息事件來暫停執行,並讓外部(長期運行的)服務通過注入消息來釋放進程。
您的兩種方法各有優缺點
服務異步任務 - 我假設您建議將“暫停”邏輯保留在服務任務中,並簡單地阻止該任務,直到外部服務返回。 雖然這更簡潔並且將邏輯保留在服務任務實現中,但它不允許邊界計時器事件或其他 BPMN 錯誤/超時處理在服務超時時繼續處理流程。 當然,你可以拋出一個 BPMNError,它會冒泡,但它會使實際邏輯更難遵循。
發送接收任務 - 這假設您可以控制外部服務,因為它與我提到的使用中間消息事件的第三個選項非常相似。 我傾向於更喜歡這種方法,因為邏輯清晰明了。 但是,這確實意味着您必須有能力讓外部服務將某些內容“發送”回接收任務以推進流程。
無論哪種方式,這兩種選擇都有自己的位置,很大程度上取決於您的外部服務的性質。
希望這可以幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.