我遇到了問題,我必須在Web服務上運行非常長的正在運行的進程,現在我正在尋找處理結果的好方法。場景:用戶通過UI執行如此長時間運行的進程。現在他得到了他的要求被接受的消息,並且他稍後應該回來。所以沒有必要向他展示他的請求的狀態或類似的東西。我只是在尋找一種能夠正確處理長時間運行過程的結果的方法。由於進程是外部程序,因此我的應用程序服務器不知道它們。因此我必須等待這些程序終止。當然,我不希望爲此使用EJB,因爲那樣他們就會阻止一段時間沒有結果可用。相反,我想到了使用JMS或Spring Batch。有沒有人有過相同的問題或建議哪種解決方案會更好?針對長時間運行的作業的Spring批處理或JMS
0
A
回答
0
這實際上取決於您的外部程序可用的通信方式。 JMS是一種非常好的方法,可立即在您的應用服務器上使用,但如果您的外部程序是一個長時間運行的數據庫查詢,它將結果轉儲爲文本文件,則可能不是最好的選擇...
Spring使用JMS作爲異步通信通道的批處理是「事務性」屬性,允許基礎架構重試失敗的作業,將作業組合在一起等。不知道更多關於您的具體設置,很難給出詳細的建議。
乾杯,
0
我也有類似的設計要求,用戶被髮送XML文件,我不得不從這些網頁文件。在這種情況下使用JMS是有利的,因爲您始終可以添加這些可以並行使用和執行作業的進程的新實例。
您可以使用計時器任務來檢查狀態或監視這些進程。另外,一旦進程完成,您可以將消息發佈到JMS隊列。
+0
但是如果這樣的消息bean沒有返回結果會發生什麼,因爲正在計算結果的進程被卡住了。這不是EJB也可能發生的同樣的問題嗎?你的應用程序中是否也存在這些問題? – nico1510
相關問題
- 1. NServiceBus批處理長時間運行的作業
- 2. 長時間運行的作業Spring
- 3. JMS with Spring Integration或Spring批處理
- 4. 如何在Heroku上處理長時間運行的作業?
- 5. MapReduce或批處理作業?
- 6. Spring批處理 - 同時執行作業的多個實例
- 7. 批處理mysql腳本/計劃運行批處理作業
- 8. 以編程方式運行Spring批處理作業?
- 9. 如何重新運行Spring批處理作業?
- 10. 長時間運行彈簧批量作業中的TransactionSystemException
- 11. Quartz.Net中的長時間運行作業
- 12. Spring批處理:在運行時獲取已定義作業的列表
- 13. 在Spring批處理中查詢批處理作業元數據
- 14. 來自Spring批處理作業參數
- 15. Spring批處理作業無限循環
- 16. Spring-xd批處理作業鎖定
- 17. Spring批處理 - 動態作業選擇
- 18. 啓動Spring批處理作業
- 19. Spring批處理作業信息庫
- 20. 處理長時間運行的webrequest
- 21. 處理長時間運行的任務
- 22. JMS問題Spring批處理在JBoss 5.2上的分區作業EAP
- 23. Spring批處理 - Ibatis批處理項作家 - 空指針異常
- 24. 在RoR中預定長時間運行作業的Gem或Library
- 25. 如何按特定順序運行Spring批處理作業(Spring Boot)?
- 26. 性能問題:Spring批處理作業花費的時間過長,無法在DB中插入行
- 27. Spring批處理:根據itemReader中的結果執行作業
- 28. 如何在啓動tomcat服務器時運行一個長時間的批處理作業?
- 29. 並行的linux批處理作業
- 30. 運行Matlab腳本作爲在Linux中的批處理作業
它不是數據庫查詢。該程序需要一個非常大的文件並從該輸入生成一個文件。 – nico1510
我用spring批量閱讀,可以使用資源管理。這將非常有用,因爲我的應用程序服務器不知道產生的外部進程。你有沒有關於如何在春季批量管理的信息? – nico1510