簡體   English   中英

在MVC 5中作為后台任務導出到Excel

[英]Export to Excel as a background task in MVC 5

我正在開發一個MVC 5應用程序,該應用程序要求將大量數據導出到excel,因此我在單獨的線程中運行它並按預期工作。 但是當用戶導航到其他頁面時,導出被取消。 我怎樣才能做到這一點。 非常感謝您的幫助。

用戶離開頁面時未得到結果

允許用戶檢索經過長時間運行的過程的結果的典型策略是將某種令牌與他們的處理請求相關聯(可以是GUID,數據庫ID等)。將過程的結果與該ID相關聯。

一種簡單的方案是使用GUID作為文件名的一部分將每個文件保存在文件系統中。 您還希望有一個數據庫表,將用戶與其啟動的長時間運行的進程的0:N GUID關聯,並且可能還有一個狀態列,指示作業是否完成。 您也可以將生成的文件保存到數據庫中。 但是,您可以保存該過程的結果,請確保並提供某種機制來定期清除舊數據。

向用戶提供一個頁面,在該頁面上,用戶可以檢查其長時間運行的流程的狀態,並在流程完成后下載結果。 根據您的情況,您還可以通過電子郵件向用戶發送一個鏈接,他們可以在完成后使用該鏈接下載文件。

請注意,使用TPL處理請求可能不是最佳計划。 有關替代品的完整列表,請查看

http://www.hanselman.com/blog/HowToRunBackgroundTasksInASPNET.aspx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM