我想创建一个调度程序实例,然后添加工作和触发器,以供将来使用的调度程序通过web UI运行,而无需重启服务器(我用的是Quartz 2。x版本)有人能帮帮我吗?
谢谢
您可以动态地将作业添加到Quartz调度器实例中,但是作业(即作业类)必须通常存在于Quartz调度器的类路径中。或者,您可以使用Quartz调度器的JobFactory API通过自定义类加载器加载作业类,这将允许您真正动态地添加作业。
有了触发器,就完全没有问题了——这些触发器可以使用标准的Quartz API动态地添加/更新/删除。
对于允许您添加作业/触发器的GUI,有几个,您可以通过在Google上搜索"quartz scheduler GUI"轻松找到它们。
我恰好是QuartzDesk的主要开发人员,这是其中一个产品。如果您对该产品有任何疑问,请联系我们。
谢谢你的回答,我重新表达我的问题,
我想创建一个SCHEDULER实例并添加五个带有参数的job。然后我想动态地将触发器添加到这个工作中,以供将来使用,而无需重新启动服务器。对于每个触发器,我希望向JOB发送参数以执行特定的处理
为例:
公共类SendSMS实现工作{
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
谢谢