【问题标题】:How to keep scheduled job in Quartz after restart?重启后如何在 Quartz 中保留预定的作业?
【发布时间】:2013-10-16 15:11:28
【问题描述】:

我使用 Quartz 创建了一个计划作业,它将每分钟运行一次。 该作业是根据以下指南创建的:http://geekswithblogs.net/TarunArora/archive/2012/11/17/quartz.net-writing-your-first-hello-world-job.aspx

问题是当服务停止并重新启动时,作业不再在调度程序中。

如何在列表中保留已安排的作业?

感谢您的帮助。

【问题讨论】:

  • 您必须使用石英持久性——通常配置存储在数据库表中。这是一个带有有用链接的帖子:stackoverflow.com/questions/11186201/javaquartz-job-persistence
  • 我对 Quartz 一点也不熟悉,但它是加载到内存中的吗?然后,您需要将作业作为配置文件存储到数据库或磁盘中。
  • 感谢两位的帮助。我在quartz_jobs.xml 文件中添加了我的工作并且它起作用了。

标签: c# quartz.net


【解决方案1】:

David F 和 bland 帮助我找到了答案。 我在名为quartz_jobs.xml 的XML 文件中添加了我的工作。

<job>
    <name>MyJob</name>
    <group>MyGroup</group>
    <description>Job for MyJob</description>
    <job-type>ScheduledDownloader.DownloadJob, ScheduledDownloader</job-type>
    <durable>true</durable>
    <recover>false</recover>
</job>

<trigger>
    <cron>
        <name>MyJob</name>
        <group>MyGroup</group>
        <description>Cron trigger for MyJob</description>
        <job-name>MyJob</job-name>
        <job-group>MyGroup</job-group>
        <misfire-instruction>SmartPolicy</misfire-instruction>
        <cron-expression>0 0/1 * 1/1 * ? *</cron-expression>
    </cron>
</trigger>

再次感谢您的快速帮助,这确实让我很开心。

【讨论】:

  • 是有道理的,但是如果我想要动态安排作业,作为其他作业的结果,或者用户请求并且系统重新启动,这将不太有用。有人知道如何通过重启来持久调用 scheduleJob 吗?它还引出了关于协调该工作的多个 jvm 实例的问题。他们都看到工作了吗?在我的测试中似乎它们确实如此,但我无法弄清楚为什么在我回收一个盒子后它们会丢失。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-08-23
  • 1970-01-01
  • 1970-01-01
  • 2017-04-25
  • 1970-01-01
  • 1970-01-01
  • 2014-09-17
相关资源
最近更新 更多