我正在考虑将 spring quartz 构建到我的 spring mvc web 应用程序中。我有几个问题无法正确找到答案。
- 如果我想为 spring quartz 使用 cron 触发器,quartz 是使用 java 系统时间还是操作系统时间执行作业?
- 我打算有一个属性文件来保存我所有的 cron 触发器。如果有人去更改 cron 触发器以临时执行作业, quartz 会自动获取文件中的更改吗?或者,如果这不是默认行为,我有没有办法告诉 quartz 如何执行此操作。
- 我最近一直在阅读有关 Spring Batch 管理控制台的内容。听起来像是一个很好的 gui 工具来重新安排工作。它可以用于对 crontab 触发器进行临时更改吗?或者我可以使用其他图形用户界面工具来管理作业触发器吗?
提前致谢
最佳答案
quartz
- Quartz 使用自定义线程调度程序 (
org.quartz.core.QuartzScheduler
),它使用 java 系统时间。它可以集成commonj
接口(interface)以实现 JEE(WAS 和 Weblogic)的互操作。 - 重新加载配置:阅读Quartz: How to reload jobs and triggers with org.quartz.plugins.xml.XMLSchedulingDataProcessorPlugin?
- 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/