2012-11-09 62 views
1

目標:生成excel報告。 我點擊從UI提交按鈕後調用控制器(JAVA)。之後,我使用過程填充數據,並在服務層進行操作。這需要很長時間,因此我在UI上獲取網關超時錯誤(服務器上有一定量的負載)。 因此,現在我打算從UI調用控制器並告訴用戶excel報告將通過電子郵件發送給您,以便用戶不會在該屏幕上等待報告。如何向服務器提交請求而無需回覆

+0

執行此計劃時是否遇到任何問題? – 2012-11-09 08:26:04

+0

你需要工作在後臺處理。 –

+0

我不知道我應該如何實現這一點。 –

回答

0

可以使用彈簧,@Async註釋做異步任務。欲瞭解更多詳情,你可以在春季看看25.5.2

0

一旦用戶提交從UI要求,只要從你的控制器在數據庫中的條目,並給郵件用戶說:「我們已經收到您的請求,Excel將通過電子郵件發送給你。」

現在在後臺有其運行的工作,你可以編寫使用螺紋或更好地利用Spring Batch的在服務器端這項工作。這項工作將做以下

1)這將是連續運行的線程,它會檢查是否有從UI任何新條目在該表中,通過一些標誌左右就可以找到。

2)這項工作將產生Excel文件和電子郵件客戶

3)一旦文件通過電子郵件發送,更新標誌=數據庫錯誤,那麼下一次這個工作將只需要下一次標誌=虛假記載處理。

+0

@JigarParekh我使用彈簧2.5.6 任何其他方法? –

+0

上面說的方法,考慮到Web服務器的負載,性能,同步,數據一致性,在生產中更好。因爲它被證明是一個並且用於許多現實生活中的項目。 –

+0

我想我會去與JMS隊列樣式實現。 –

0

創建一個Java程序,將填充的東西你的Excel工作表和休息。然後在你的servlet使用

Process p=Runtime.getRuntime().exec(/*run your java program */); 

這將創建一個並行處理和你的servlet將結束

相關問題