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

Ant*_*ony 15 asp.net iis windows-services quartz.net

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

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

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

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

jvi*_*lta 14

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

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

  2. 如果您的作业可能需要与Web应用程序具有的权限不同的权限,请作为服务运行.

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

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

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


Mar*_*hma 13

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

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

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