Динамическое добавление заданий в работающий планировщик Quartz из разных исполняемых файлов.

У меня есть запущенный планировщик, и на нем выполняется одно задание. Это основной поток планировщика, который я буду запускать.

    public class MyApp {
    Scheduler scheduler1;
    public static void main(String[] args) {
        run();
    }

    public static void run(){
      try { 
        JobDetail job = JobBuilder.newJob(Job.class)
                .withIdentity("JoeyJob", "group1").build(); 

        Trigger trigger1 = TriggerBuilder.newTrigger()
                .withIdentity("cronTrigger1", "group1") 
                .withSchedule(CronScheduleBuilder.cronSchedule("0/10 * * * * ?")) 
                .build(); 

        scheduler1 = new StdSchedulerFactory().getScheduler();



        scheduler1.start();
        System.out.println(scheduler1.getSchedulerInstanceId());
        scheduler1.scheduleJob(job,trigger1);

        Thread.sleep(1000000);

        scheduler1.shutdown();
    }
    catch(Exception e){
        e.printStackTrace();
    }
}

Я хочу запустить еще одно задание с триггером в том же планировщике, но мне нужно получить к нему доступ из другого исполняемого файла Java, используя, возможно, имя планировщика или любой такой параметр. Я понимаю, что имя планировщика возвращает что-то вроде «defaultScheduler», а идентификатор экземпляра возвращает «NON_CLUSTERED». Мне нужно разработать приложение для запуска одного потока планировщика и постоянного добавления/удаления заданий обновления отправки электронных писем. Поскольку это будет инициализировано, используется сервлетом. Есть ли способ получить доступ к этому планировщику из памяти из другого исполняемого экземпляра. Это то, что я ищу.

    public class Test {

    public static void main(String[] args) throws SchedulerException {
        run();
     }
    public static void run()throws SchedulerException{
    JobDetail job = JobBuilder.newJob(Job2.class)
         .withIdentity("Jake", "group2").build(); 

    Trigger trigger1 = TriggerBuilder.newTrigger()
         .withIdentity("cronTrigger2", "group1")
         .withSchedule(CronScheduleBuilder.cronSchedule("0/2 * * * * ?")) 
         .build(); 


    Scheduler scheduler= new StdSchedulerFactory().getScheduler("scheduler-name-something");

    scheduler.scheduleJob(job,trigger1);
        }
   }

Есть ли способ использовать идентификатор экземпляра планировщика и имя планировщика для этого?


person Joey Pinto    schedule 02.02.2016    source источник
comment
У меня тот же вопрос... вы продвинулись?   -  person Hugo Zaragoza    schedule 26.09.2016
comment
@HugoZaragoza Пожалуйста, проголосуйте за вопрос, если вас интересует ответ.   -  person Joey Pinto    schedule 11.07.2017


Ответы (1)


Я проверил документацию, нет способа сделать то, что я искал.

person Joey Pinto    schedule 11.07.2017