目標:生成excel報告。 我點擊從UI提交按鈕後調用控制器(JAVA)。之後,我使用過程填充數據,並在服務層進行操作。這需要很長時間,因此我在UI上獲取網關超時錯誤(服務器上有一定量的負載)。 因此,現在我打算從UI調用控制器並告訴用戶excel報告將通過電子郵件發送給您,以便用戶不會在該屏幕上等待報告。如何向服務器提交請求而無需回覆
回答
可以使用彈簧,@Async
註釋做異步任務。欲瞭解更多詳情,你可以在春季看看25.5.2。
一旦用戶提交從UI要求,只要從你的控制器在數據庫中的條目,並給郵件用戶說:「我們已經收到您的請求,Excel將通過電子郵件發送給你。」
現在在後臺有其運行的工作,你可以編寫使用螺紋或更好地利用Spring Batch的在服務器端這項工作。這項工作將做以下
1)這將是連續運行的線程,它會檢查是否有從UI任何新條目在該表中,通過一些標誌左右就可以找到。
2)這項工作將產生Excel文件和電子郵件客戶
3)一旦文件通過電子郵件發送,更新標誌=數據庫錯誤,那麼下一次這個工作將只需要下一次標誌=虛假記載處理。
@JigarParekh我使用彈簧2.5.6 任何其他方法? –
上面說的方法,考慮到Web服務器的負載,性能,同步,數據一致性,在生產中更好。因爲它被證明是一個並且用於許多現實生活中的項目。 –
我想我會去與JMS隊列樣式實現。 –
創建一個Java程序,將填充的東西你的Excel工作表和休息。然後在你的servlet使用
Process p=Runtime.getRuntime().exec(/*run your java program */);
這將創建一個並行處理和你的servlet將結束
- 1. HTTP請求提供服務,而無需使用Web服務器
- 2. 向服務器重複異步請求
- 3. 向兩臺服務器提交GET請求
- 4. iOS無需服務器直接向APNS發送請求
- 5. AJAX請求服務器脫機,然後恢復服務器回
- 6. 回覆服務器到服務器的請求?
- 7. 如何反覆向後臺發送請求到服務器?
- 8. 通過改造HTTP請求返回失敗,而無需服務器調用
- 9. 如何提交文件而無需將其發佈到服務器?
- 10. 如何將大數據傳遞給jsp而無需提交到服務器
- 11. 如何向有服務器的服務器調用請求並在響應無效時再次發送請求?
- 12. 請求到服務器如何縮放較大的交通需求
- 13. 獲取過去的請求而無需等待回覆(Angular 2 +)
- 14. 每秒向服務器發送驗證請求(重複任務)
- 15. Node.js $ http PUT請求不向服務器返回任何內容
- 16. 如何向服務請求權限
- 17. 如何向服務請求許可
- 18. 如何向服務請求d3數據?
- 19. 如何查看提交給我的AWS Web服務的請求?
- 20. 向haproxy中的默認服務器或其他服務器請求redispatch請求?
- 21. (iOS)向jabber服務器遞交vCard-temp請求?
- 22. 向遠程服務器發出請求
- 23. 向服務器發送多個請求
- 24. 向服務器發送大量請求
- 25. 向服務器發送請求兩次
- 26. 向服務器發送POST請求
- 27. 向敏感數據請求服務器
- 28. 社交媒體提要 - 客戶端或服務器端請求?
- 29. 服務器在發佈請求時未提交表單 - Python
- 30. 如何向Java提供json RESTful服務的發佈請求?
執行此計劃時是否遇到任何問題? – 2012-11-09 08:26:04
你需要工作在後臺處理。 –
我不知道我應該如何實現這一點。 –