2012-01-26 113 views
0

我正在研究將生成大約2000個Excel表的功能。該過程將接受來自前端Web應用程序的輸入。我不希望我的web應用程序等待生成excel文件的過程結束。我應該編寫一個控制檯應用程序並通過Web應用程序或Web服務觸發它?這是更好的實施方式嗎? 謝謝, 羅希特控制檯應用程序或Web服務

+0

爲什麼不能異步執行 - 在後臺線程上啓動它。 – Tim

+0

我對線程不太舒服。如果用戶在觸發進程後關閉瀏覽器,它會繼續在線程中嗎? – RRForUI

+0

我不完全確定,但它可能不會。在這種情況下,您可能需要查看一個Web服務,但我會謹慎創建運行時間相當長的Web服務。你可能會更好地考慮其他方式來做到這一點 - 可能會把數據放在數據庫中,並有一個工作或SSIS包根據數據啓動工作。只是另一個想法考慮。 – Tim

回答

0

我建議保存Excel的根作爲數據庫中的一個任務,然後有一個後臺服務持續運行,檢查任務隊列,處理它(創建電子表格),然後最後更新作業記錄爲處理完畢。除了創建工作記錄外,您的asp.net應用程序還可以定期或在頁面刷新時檢查狀態。

+0

生成excel的過程每季度只進行一次。這是一個手動過程。不斷運行服務會使服務器變慢,因爲其他應用程序也駐留在該服務器上 – RRForUI

+0

然後手動運行每3個月生成一次這些文件的工具 - 我不知道該告訴你什麼。最接近實現雙擊的自動化可能是調度它(例如使用任務調度程序)。沒有長時間運行的任務是完美適合asp.net應用程序,特別是當應用程序的池保留默認設置時,與應用程序回收/重置相關。順便說一句,100%的時間完成最少工作的服務甚至不會在體面的服務器上被注意到,只要它耗費的CPU時間(也是唯一的服務器?)。 – 2012-01-26 23:31:45

相關問題