asp.net后台工作线程

本文关键字:线程 工作 后台 net asp | 更新日期: 2023-09-27 18:11:35

我计划在asp.net网站的应用程序启动事件中启动一个后台线程(在global.asax中)。

我在很多地方读到这不是一个好的做法,因为这个线程可能会崩溃整个IIS进程或可能导致其他问题。

我需要启动一个后台线程,定期连接到另一个服务器和更新数据库,所以:

这种情况下的最佳实践是什么?我可以只是将线程标记为背景,以便在其他线程停止时自动停止吗?如果在这种情况下启动线程不是一个好的选择,那么最好的替代是什么?

asp.net后台工作线程

请注意,ASP中的任何后台工作。. NET可以在AppDomain回收时毫无预警地消失。Windows服务和计划任务没有那么多理由消失,但它们也可以消失(重新启动、部署、蓝屏、断电,或者代码中的错误!)。

必须能够容忍任何工作消失。只要这样,你就可以安全地启动后台工作。

你可以使用计时器,或者更简单地说,一个任务只做:

while (true) {
 DoWork();
 await Task.Delay(...);
}

确保记录错误

考虑使用Azure。这里可以使用WebJob或WorkerRole