我打算創建一個asp.net MVC Web應用程序將執行一個同步作業的asp.net的MVC控制器的操作方法,來實現這一點: -調用使用Windows任務調度程序或其他安排表工具
我們有一個第三方ERP系統,它會及時生成一個.csv文件,它將在每小時生成一個
.csv
文件。該.csv
文件包含有關本公司的資產,如型號,價格,名稱,位置等信息...現在,我將開發一個asp.net MVC Web應用程序將讀取
.csv
數據和更新與此數據庫數據。
所以我打算做到以下幾點: -
我將創建一個新的數據庫,其中將包含的數據。
我將創建一個新的asp.net mvc-5 web應用程序,它具有SYNC操作方法,該方法將讀取
.csv
數據並更新數據庫。
現在我面臨的問題是我需要同步作業每小時運行或按照特定的計劃運行。現在,從我以前的經驗,我可以列出這些方法2調用及時的操作方法: -
裏面的asp.net的MVC的Global.asax中我可以創建運行在每個小時的計劃。
我可以使用第三方工具如Hangfire來安排任務。
現在用任何一種方法都會使這一限制: -
- 在Global.asax或第三方工具,如遲髮型將應用程序池下運行,如果不執行任何操作在應用程序上,那麼計劃永遠不會運行,因爲應用程序池不會處於活動狀態。但是在我之前的應用程序中,這並不是一個真正的問題,因爲系統在計劃任務旁邊包含很多視圖,所以系統在工作時間內幾乎保持100%的活動狀態。
但是在我目前的項目中,用戶不會訪問Web應用程序,因爲它只會執行一個同步作業,並且最終用戶沒有任何其他功能。所以在這種情況下,同步作業永遠不會運行,因爲應用程序池不會處於活動狀態。 因此,誰能意見,如果這些方法聽起來有效解決我的問題: -
- 創建一個Windows計劃任務將每小時被調用的操作方法,網址: -
的schtasks /創建/ tn「我的計劃任務」/ tr「powershell -ExecutionPolicy unrestricted -Command \」(New-Object Net.WebClient).DownloadString(\\ http://url .to.be.executed/cron。PHP \\ 「)\」/ SC DAILY/ST 7時○○分00秒/ RU系統
- 要創建的global.asax 2個內安排任務。一個計劃任務將每5分鐘調用一次應用程序url以保持應用程序池的活躍狀態,另一個計劃任務每小時調用同步操作方法。在這種情況下,應用程序將繼續自稱爲每5分鐘,這將迫使應用程序池說活着,同步作業將運行,即使沒有用戶訪問系統中的每個小時...
所以任何人都建議在此請?
感謝
你在尋求什麼樣的建議?你需要清楚。順便說一句,你可以配置Hangfire [永遠運行](http://docs.hangfire.io/en/latest/deployment-to-production/making-aspnet-app-always-running.html)。 – mason
@mason但是,我可以添加一個Windows計劃任務,例如每10分鐘會調用一次應用程序,並使用hangfire,而不必將其配置爲始終運行? –
當然,我想你已經知道了。 – mason