我打算创建一个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