我有以下情況:我有一個存儲過程,從一堆表中獲取數據並創建一個記錄到一個表中。之後,最終用戶可以根據生成表格中該行的數據得到一些圖形。問題是,從多個表中收集數據到最終的數據可能會有很長的運行時間。我希望從我的Web應用程序中爲用戶提供開始收集數據的可能性,並且在完成這些工作以告知他這一點時,可以根據所得到的收集數據訪問圖形圖表。我的問題是如何實施這個最佳實踐。收集SQL數據與反饋到asp.net web應用程序
1
A
回答
1
在服務器上啓動後臺線程進行處理。您可以將處理結果存儲在session state,數據庫或其他位置。
在客戶端,使用UpdatePanel和Timer定期輪詢服務器的結果。當結果存在時,禁用定時器。
0
我會做一些像Andomar的建議,但在一個Windows服務,而不是在asp.net進程中的線程。
首先,我將在我的數據庫中設置一個表,用作工作隊列 - 也許您的結果表就足夠了?該表將包含作業唯一標識,作業描述(由您的服務用於確定要執行的操作)和作業狀態代碼(新作業,已完成)。
然後,我會設置一個Windows服務應用程序,將定期輪詢此表。根據您的負載情況,可能每隔5-30秒鐘更換一次。該服務很簡單:如果發現任何新作業,它會將第一份工作標記爲「正常工作」,然後運行數據收集過程。完成該過程後,該服務會將工作標記爲已完成。
最後,在我的asp.net應用程序中,我將設置一個作業順序頁面,用戶可以請求新的數據收集作業。該請求會將新記錄插入到工作隊列表中,狀態爲新,並根據需要顯示工作描述。然後,頁面會將用戶重定向到一個新頁面(或使用ajax),該頁面將檢查作業的狀態並每隔XX秒重新加載以檢查作業是否完成。當作業狀態代碼設置完成時,我們會顯示用戶可以顯示報告或下載文件等的頁面。
我在這裏建議的是基於輪詢的作業隊列的簡單實現。你當然可以使用MSMQ或類似的東西來製作一個更好的版本,但如果不是大多數情況,這應該足夠了。
相關問題
- 1. 收到用戶輸入到Android應用程序的反饋?
- 2. 發佈ASP.Net Web應用程序與SQL Server數據庫安裝
- 3. 將sql數據庫附加到asp.net web應用程序
- 4. 反向工程asp.net web應用程序
- 5. 如何收集客戶反饋?
- 6. 針對Web應用程序收集的數據庫設計
- 7. SQL數據庫設計反饋
- 8. 反饋表與asp.net代碼
- 9. ASP.NET MVC Web應用程序與Web應用程序
- 10. 用於ASP.NET Web應用程序的SQL Server或Access數據庫?
- 11. Delphi XE5 DataSnap應用程序 - 反饋
- 12. ASP.net反饋表格
- 13. 需要爲所有現有的ASP.NET Web應用程序添加「應用程序反饋」功能(超過300個)
- 14. 應用程序集成的「發送反饋」
- 15. Firestore web保存數據離線反饋
- 16. ASP.NET Web應用程序SQL Server CE數據庫配置錯誤
- 17. 如何將一個oracle數據庫與一個asp.net web應用程序集成?
- 18. Web應用程序的工資覈算數據與QuickBooks集成
- 19. 從ASP.NET Web應用程序到ASP.NET Web服務到SQL Server的驗證
- 20. ASP.NET MVC Web應用程序VS ASP.NET Web應用程序
- 21. Web應用程序:從用戶收集未知量的數據未知次數
- 22. VS2008 ASP.NET網站與Web應用程序
- 23. Sharepoint與ASP.Net Web應用程序
- 24. ASP.NET 5 JSON與Azure Web應用程序
- 25. 如何將Tally與Asp.Net Web應用程序集成?
- 26. 將Flash與ASP.NET Web應用程序集成
- 27. SimpleSAMLphp與asp.net web表單應用程序的集成
- 28. 如何將asp.net web應用程序與Google Drive集成?
- 29. 將OBIEE與Web應用程序集成
- 30. 將IMCache與Web應用程序集成