我正在编写一个 WebAPI 应用程序来执行许多长时间运行的后台处理任务。
我注意到,即使我在 IIS 中禁用池回收,我的测试数据加载任务也会被 System.Threading.ThreadAbortException 终止。
我知道,有一种方法可以在 Web 应用程序中运行很长时间(几个小时)的后台任务,但是,我只是不知道具体是如何完成的 - 要么是一些特定的配置设置,要么是编码技术, Wen.config 参数等...
有人可以分享一些实用的方法吗?
您不想使用 IIS/ASP.Net 来运行长时间运行的进程,它不是为此而设计的。
仅将其用于 Web.API 中的初始调用,以通过使用 MSMQ 或在表中插入一行来启动服务来告诉单独的进程要做什么。
创建一个单独的应用程序 - 一个控制台应用程序,您可以在其中使用 Windows Scheduler 定期运行该应用程序并检查新的工作项;或 Windows 服务,定期检查工作项存储中的工作项。然后,您可以使用线程池等来异步运行您的进程。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)