使用以下方法运行基于时间的作业有哪些优点/缺点:
Windows服务
Application_BeginRequest启动单独的线程/计时器。
在asp.net web应用程序的上下文中运行作业的一个缺点是在.net回收过程中,必须再次设置其他内容吗?
答案 0 :(得分:1)
在我看来,在网络应用中做基于时间的事情并没有什么好处。直接进入Windows服务。你知道这个过程应该一直在运行。
ASP.NET站点可能只是卸载,并且只有在有人开始浏览时才会再次运行。生命周期是错误的 - 它比服务更“笨拙”。
最后,服务并不是很难创建。
答案 1 :(得分:0)
如果您具有对服务器的管理访问权限,我将根据您要实现的目标运行Windows服务或计划的SQL作业。
很高兴能够独立于您的Web应用程序停止/启动和记录这些作业。此外,如果您在工作中遇到问题或错误,可能会对您的网站产生负面影响。
最后,您强制Web应用程序在每个请求中查看代码,以查看计时器是否已经过去,这是一个不必要的开销。
正如我所说,实施取决于工作是什么。如果只是更新大量数据库记录,我将在SQL Server中使用预定作业。如果您需要文件I / O或访问外部服务,则Windows服务可能更合适。
值得注意的是,您需要在Windows服务中构建自己的调度和线程安全性。另一种方法是构建一个控制台应用程序,并使用FireDaemon等应用程序进行调度。