如何使用触发器添加为工作而无需重新启动服务器运行Quartz调度实例(How to add job

2019-10-20 02:38发布

我想创建一个调度实例,然后增加就业机会,并触发以备将来使用这种调度通过网络界面运行而无需重新启动服务器(我使用Quartz 2.x版)任何人可以帮助我吗?

谢谢

Answer 1:

您可以动态地添加作业到Quartz调度实例,但作业(即作业类)必须是通常存在于石英调度的类路径。 另外,您可以使用Quartz调度的API的JobFactory通过自定义类加载器加载作业类和允许你真正动态添加工作。

随着触发器,也完全没有问题 - 这些可以添加/更新/使用标准的API石英动态删除。

作为一个GUI,允许您添加工作/触发器,还有他们夫妇,你可以很容易地通过搜索“石英调度鬼”在谷歌找到他们。

我碰巧是一个主要开发QuartzDesk ,这是这些产品中的一个。 如果您对这款产品有任何疑问,那么请使用我们的接触。



Answer 2:

谢谢您的回答,我重新整理我的问题,

我想创建一个调度实例,并添加五个作业与参数应用。 然后我想动态添加触发器来此工作通过网络界面将来使用而无需重新启动服务器。 并与每个触发器,我想参数发送到任务执行特定的处理

例如:

公共类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

谢谢



文章来源: How to add job with trigger for running Quartz scheduler instance without restarting server