在ASP.Net中启动时长时间运行的后台任务

时间:2019-09-10 11:47:56

标签: asp.net multithreading iis

我有一个连接到SqlServer实例的Web应用程序。数据库中的数据来自服务器文件夹中的几个文件。在启动应用程序时,请检查文件中是否有任何更改,以及是否删除了SqlServer中的数据,然后对数据进行处理,然后将其写入数据库。相当基本。

处理和写入数据最多需要45分钟,因此我想使用后台线程使应用程序的其余部分可用。导入必须主要是顺序的,因为来自不同文件的数据彼此依赖。问题在于,线程在大约20分钟后被杀死。我已经尝试过Task.Run, Thread, ThreadPool.QueueUserWorkItem, HostingEnvironment.QueueBackgroundWorkitem,但似乎所有人都遇到了这个问题。问题似乎出在IIS的超时上,它在激发初始请求后经过X倍的时间后杀死了线程。

我发现很多人都遇到同样的问题,但是其中大多数人经常发生任务长期运行,或者实际上依赖于这些任务的请求。我已经研究过HangFire,但是对于启动时的导入任务而言,这似乎有些过头了。

是否有解决此问题的简单方法,还是需要重新考虑应用程序处理这些文件导入的方式?

0 个答案:

没有答案