【问题标题】:Quartz.net job schedulingQuartz.net 作业调度
【发布时间】:2016-02-23 07:34:09
【问题描述】:

Quartz.net 如何在后台工作。假设我创建了一个明年会触发的工作。所以一年的后台发生了什么。 .是否有一个进程或线程连续运行一年。它在后台实现计时器吗?

【问题讨论】:

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


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 也许我可以在 global.asax 文件中执行此操作,这样每当应用程序重新启动时,调度程序就会返回其作业。会有帮助吗?
    • 似乎您可以在 global.asyx 中使用 Quartz,但我不知道它的可靠性如何,因为 IIS 可能会在认为合适的时候重新使用您的应用程序池。 mikesdotnetting.com/article/254/…
    猜你喜欢
    • 2013-02-01
    • 2011-10-09
    • 1970-01-01
    • 1970-01-01
    • 2011-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-28
    相关资源
    最近更新 更多