Java 从不同的可执行文件向正在运行的Quartz调度程序动态添加作业
我有一个已启动的计划程序,并在其上运行一个作业。这是我将要运行的主调度程序线程Java 从不同的可执行文件向正在运行的Quartz调度程序动态添加作业,java,job-scheduling,Java,Job Scheduling,我有一个已启动的计划程序,并在其上运行一个作业。这是我将要运行的主调度程序线程 public class MyApp { Scheduler scheduler1; public static void main(String[] args) { run(); } public static void run(){ try { JobDetail job = JobBuilder.newJob(Job.cla
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”的内容,而实例ID返回“NON_CLUSTERED”。我需要开发一个应用程序来运行单个调度器线程,并不断添加/删除发送电子邮件的更新作业。因为这将由servlet进行初始化。是否有一种方法可以从不同的可执行实例的内存访问此计划程序。这就是我要找的
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);
}
}
有没有办法使用调度程序实例ID和调度程序名称来执行此操作 我检查了文档,没有办法做我想做的事。我检查了文档,没有办法做我想做的事。我有同样的问题。。。你有什么进展吗?@HugoZaragoza如果你对答案感兴趣,请把问题投上去。我有同样的问题。。。你有什么进展吗?@HugoZaragoza如果你对答案感兴趣,请把问题投上去。