如何添加带有触发器的作业,以便在不重启服务器的情况下运行Quartz调度程序实例



我想创建一个调度程序实例,然后添加工作和触发器,以供将来使用的调度程序通过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

谢谢

相关内容

  • 没有找到相关文章