2

使用以下方式运行基于时间的作业有哪些优点/缺点:

  1. 窗口服务

  2. Application_BeginRequest 启动单独的线程/计时器。

在 asp.net web 应用程序的上下文中运行作业的一个缺点是在 .net 回收过程中必须重新设置,还有其他的吗?

4

2 回答 2

1

在我看来,在网络应用程序中做基于时间的事情并没有真正的好处。直接去windows服务。您知道该过程应该一直启动并运行。

ASP.NET 站点可能会简单地卸载,并且只有在有人开始浏览时才会再次运行。生命周期全错了——它比服务更“不稳定”。

最后,服务并不难创建。

于 2009-06-19T14:51:01.953 回答
0

如果您对服务器具有管理访问权限,我会根据您要实现的目标运行 Windows 服务或计划的 SQL 作业。

能够独立于您的 Web 应用程序来停止/启动和记录这些作业真是太好了。此外,如果您在工作中遇到问题或错误,可能会对您的网站产生不利影响。

最后,您将强制 Web 应用程序在每次请求时检查代码以查看计时器是否已过,这是不必要的开销。

正如我所说的,实施取决于工作是什么。如果只是更新一些数据库记录,我会在 SQL Server 中使用计划作业。如果您需要文件 I/O 或访问外部服务,那么 Windows 服务可能更合适。

值得注意的是,您需要将自己的调度和线程安全构建到 Windows 服务中。另一种方法是构建控制台应用程序并使用FireDaemon之类的应用程序进行调度。

于 2009-06-10T01:22:44.477 回答