我設置一個Wicket +休眠+春Web應用程序,包括收集一些數據(已產生了一些文件,並返回),存儲在數據庫中這一點,創造一些圖像和顯示這一切在網頁上。檢票:如何處理長時間運行的任務
這一切工作正常進行短版印刷,但有時收集的數據(其中包括一些遠程數字運算)花費的時間太長(20分鐘以上)和超時。我試圖用兩種方法解決這個問題,但是他們都顯示出一些問題。
第一種方法是使用AjaxLazyLoadPanel S和剛做getLazyLoadComponent內的一切。這對於短期運行很有效,但對於超過20分鐘的運行,由於超時,LazyLoadComponents不會加載(那裏有很好的矛盾)。
第二種方法涉及創建一箇中間片段,其中添加了AjaxSelfUpdatingTimerBehavior,其持續時間設置爲10秒,用於輪詢在數字運算中創建的文件。這似乎使任務在後臺運行時沒有問題,但在返回的數據需要存儲在數據庫中時失敗。我在視圖模式中使用Open Session,但在20分鐘後試圖存儲數據時可能會失敗? (解決方案可能在於解決這個問題..)。
由於上述問題,現在我在讀的替代方法,以處理這些長期運行的任務和遇到:
我現在想知道如果這些可能更適合於解決我有兩個運行的任務和存儲在數據庫中的數據之後的超時問題,或者如果任何人有任何其他的解決方案,可能會在這種情況下幫助。
我真的很想知道,如果一個新的方法是可行的,我花一天實現的東西,可能會變成不畢竟工作之前。
最好的問候,
添
謝謝,這件事情我想張貼問題,以及之後的(制定一個問題是,就像那樣的橡膠閃避)。我仍然必須知道這是否能夠真正解決問題,因爲日誌不會記錄超時會話的任何內容。只是在數據庫中缺少結果是不明智的。如果我瞭解更多信息,將會更新。 – Tim 2010-02-22 23:25:14
結束了這種方法,並沒有任何問題,因爲..謝謝! – Tim 2010-02-27 17:57:48
好聽Tim! – Matt 2010-03-01 04:27:02