Quartz.net作业调度

时间:2016-02-23 07:34:09

标签: c# asp.net asp.net-mvc quartz-scheduler quartz.net

Quartz.net如何在后台运行。假设我已经创建了一个明年会被触发的工作。那么在背景中发生了一年的事情。 。是否有一个持续运行一年的进程或线程。它是否在后台实现计时器?

1 个答案:

答案 0 :(得分:0)

您需要启动Quartz调度程序。只要调度程序正在运行,Quartz就会跟踪计划并根据计划启动作业。但由于Quartz是一个托管在你的应用程序中的库,你必须自己启动Quartz调度程序。

在您没有永远处于活动状态的应用程序(如网站)的情况下,您必须找到一些方法让Quartz调度程序独立运行(例如,在专用于运行的调度程序服务中)你的工作)。我在ASP.Net项目中找到了一些使用Quartz.net的参考资料,但我没有在网站中运行Quartz的个人经验。我不知道Quartz会如何响应IIS关闭或重用您的站点运行的应用程序池。但是如果您的工作可以处理中止,那么它可能是一个可行的选择。您必须在Application_Start课程的Global事件中启动调度程序。

无论您如何运行Quartz,您都希望使用非易失性的作业存储。 Quartz可以将预定的作业存储在内存中,但是您必须在每次应用程序启动后重新安排所有作业。因此,强烈建议使用另一个可以在应用程序重新启动之间保留作业的作业存储。

Quartz.net quick-start tutorial提供了一些代码来向您展示如何在您的应用程序中使用Quartz。