【发布时间】:2016-02-23 07:34:09
【问题描述】:
Quartz.net 如何在后台工作。假设我创建了一个明年会触发的工作。所以一年的后台发生了什么。 .是否有一个进程或线程连续运行一年。它在后台实现计时器吗?
【问题讨论】:
标签: c# asp.net asp.net-mvc quartz-scheduler quartz.net
Quartz.net 如何在后台工作。假设我创建了一个明年会触发的工作。所以一年的后台发生了什么。 .是否有一个进程或线程连续运行一年。它在后台实现计时器吗?
【问题讨论】:
标签: c# asp.net asp.net-mvc quartz-scheduler quartz.net
您需要启动 Quartz 调度程序。只要调度程序正在运行,Quartz 就会跟踪调度并根据它们的调度启动作业。但是由于 Quartz 是托管在您的应用程序中的库,因此您必须自己启动 Quartz 调度程序。
在您没有始终处于活动状态的应用程序(如网站)的情况下,您必须找到某种方法让 Quartz 调度程序独立运行(例如在专用于运行您的作业的调度程序服务中) )。我发现了一些在 ASP.Net 项目中使用 Quartz.net 的参考资料,但我没有在网站中运行 Quartz 的个人经验。我不知道 Quartz 会如何对 IIS 关闭或重用您的站点正在运行的应用程序池做出反应。但如果您的工作可以处理被中止,它可能是一个可行的选择。您必须在 Global 类的 Application_Start 事件中启动调度程序。
无论您如何运行 Quartz,您都希望使用非易失性作业存储。 Quartz 可以将预定的作业存储在内存中,但是您必须在每次应用程序启动后重新安排所有作业。因此强烈建议使用另一个可以在应用程序重新启动之间保留作业的作业存储。
Quartz.net quick-start tutorial 有一些代码向您展示如何在您的应用程序中使用 Quartz。
【讨论】: