运行Quartz.NET嵌入式或作为Windows服务的优点和缺点

时间:2010-05-20 01:52:21

标签: asp.net iis windows-services quartz.net

我想将石英计划添加到ASP.NET应用程序。

它将用于发送排队的电子邮件。

运行quartz.net作为Windows服务与嵌入式服务器的优缺点是什么。

我主要担心的是嵌入式模式下的Quartz.NET如何在IIS中处理可变数量的工作进程。

2 个答案:

答案 0 :(得分:14)

在您决定是否应该运行嵌入式时,您可以考虑以下事项:

  1. 如果您要仅在托管应用程序中创建作业,则运行embedded。否则,作为服务运行。

  2. 如果您的工作可能需要与网络应用具有的权限不同的权限,请作为服务运行。

  3. 如果您的作业是长时间运行的作业,或者使用大量内存的作业,请作为服务运行。

  4. 如果您需要在集群环境中运行作业以获得性能,可伸缩性或容错性,请作为服务运行。

  5. 从上面的项目中,您可以推断出我的偏好是将其作为服务运行。这是因为如果您要解决设置作业调度程序的问题,这意味着您需要按计划运行的作业或长时间运行的作业。对于此类工作,服务通常是更好的选择。

答案 1 :(得分:13)

Quartz.NET可以基于每个应用程序进行实例化(Web场配置需要多个调度程序)。如果在数据库中备份了作业,并且在集群模式下配置了Quartz.NET(并且时钟自然同步),则可以安全地运行多个调度程序。

主要关注的是IIS 7.5之前的应用程序池处理。如果没有经常检查,您的应用程序工作者就可以被回收,并且您的调度程序将关闭,直到有人发出Web请求再次启动应用程序池。 IIS 7.5具有保持应用程序池始终运行的新功能。

否则两个模型之间应该没有太大的区别。