spring - 关于 Spring quartz 的几个问题

标签 spring quartz-scheduler

我正在考虑将 spring quartz 构建到我的 spring mvc web 应用程序中。我有几个问题无法正确找到答案。

  1. 如果我想为 spring quartz 使用 cron 触发器,quartz 是使用 java 系统时间还是操作系统时间执行作业?
  2. 我打算有一个属性文件来保存我所有的 cron 触发器。如果有人去更改 cron 触发器以临时执行作业, quartz 会自动获取文件中的更改吗?或者,如果这不是默认行为,我有没有办法告诉 quartz 如何执行此操作。
  3. 我最近一直在阅读有关 Spring Batch 管理控制台的内容。听起来像是一个很好的 gui 工具来重新安排工作。它可以用于对 crontab 触发器进行临时更改吗?或者我可以使用其他图形用户界面工具来管理作业触发器吗?

提前致谢

最佳答案

quartz

  1. Quartz 使用自定义线程调度程序 (org.quartz.core.QuartzScheduler),它使用 java 系统时间。它可以集成 commonj 接口(interface)以实现 JEE(WAS 和 Weblogic)的互操作。
  2. 重新加载配置:阅读Quartz: How to reload jobs and triggers with org.quartz.plugins.xml.XMLSchedulingDataProcessorPlugin?
  3. Spring Batch 管理控制台用于 Spring Batch,用于监控批处理事件

使用 API 重新加载配置

一般来说你可以使用quartz API以编程方式(我使用它们):

    JobDetail job = new JobDetail();
    job.setName("myJob");
    job.setJobClass(MyJob.class);

    CronTrigger trigger = new CronTrigger();
    trigger.setName("myTriggerName");
    trigger.setCronExpression("0/30 * * * * ?");


    Scheduler scheduler = new StdSchedulerFactory().getScheduler();
    scheduler.start();
    scheduler.scheduleJob(job, trigger);

这些 API 为您提供精细的控制。

重新加载配置JMX方式

您可以通过 RemoteMBeanScheduler 控制 Qurtz 调度器:

An implementation of the Scheduler interface that remotely proxies all method calls to the equivalent call on a given QuartzScheduler instance, via JMX.

关于spring - 关于 Spring quartz 的几个问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21717256/

相关文章:

java - 在 Spring Hibernate 中使用 @ModelAttribute

java - 如何在 Spring 中为单元测试创​​建 HttpServletResponse?

java - 在主线程中等待 Quartz Scheduler 完成

java - 使用 Quartz-scheduler 的作业中的自定义对象参数

java - 停止从quartz调度程序中删除作业

java - 如何在不覆盖序列化方法的情况下为特定类覆盖 JsonSerializer 的 isEmpty 方法?

java - 不要在 uni-test 中启动 spring 上下文

java - 将 json 响应转换为自定义类时出错

quartz-scheduler - web.xml 中的 Quartz 属性文件配置及其位置

java - 如何添加带有触发器的作业以运行 Quartz 调度程序实例而无需重新启动服务器