我想创建一个调度程序实例,然后添加作业和触发器以供将来使用到由Web UI运行的此调度程序,而无需重新启动服务器 (我使用Quartz 2.x版本) 请有人帮帮我吗?
谢谢
答案 0 :(得分:1)
您可以向Quartz调度程序实例动态添加作业,但作业(即作业类)通常必须存在于Quartz调度程序的类路径中。或者,您可以使用Quartz调度程序的JobFactory API通过自定义类加载器加载作业类,这将允许您真正动态地添加作业。
使用触发器,完全没有问题 - 可以使用标准的Quartz API动态添加/更新/删除它们。
对于允许您添加作业/触发器的GUI,有几个,您可以通过搜索" quartz scheduler gui"轻松找到它们。在Google上。
我恰好是QuartzDesk的主要开发者,这是其中一个产品。如果您对此产品有任何疑问,请使用我们的联系方式。
答案 1 :(得分:1)
谢谢你的回答,我改述了我的问题,
我想创建一个SCHEDULER实例并使用PARAMETRES添加五个JOBS。 然后,我想动态地将TRIGGERS添加到此作业,以供Web UI在将来使用而无需重新启动服务器。 对于每个触发器,我想将参数发送到JOB以执行特定处理
例:
public class SendSMS实现Job {
public void execute(JobExecutionContext jec) throws JobExecutionException {
try {
SendMessage(param1, param2, param3);
} catch (Exception e) {
throw new UnsupportedOperationException("Erreur : " + e.getStackTrace());
}
}
}
公共类CronTriggers {public static void main(String[] args) throws Exception {
JobKey jobKeySMS = new JobKey("SMSJob", "Groupe1");
JobDetail jobDetailSMS = JobBuilder.newJob(SendSMS.class).withIdentity(jobKeySMS).build();
Scheduler scheduler = new StdSchedulerFactory().getScheduler();
scheduler.clear();
scheduler.start();
scheduler.scheduleJob(jobDetailSMS, DYNAMIC_TRIGGER); // DYNAMIC_TRIGGER recover from web UI
由于