gpt4 book ai didi

java - 从不同的可执行文件动态添加作业到正在运行的 Quartz 调度程序

转载 作者:太空宇宙 更新时间:2023-11-04 12:58:28 24 4
gpt4 key购买 nike

我有一个已启动的调度程序,并且正在运行一项作业。这是我将运行的主调度程序线程。

    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 和调度程序名称来执行此操作?

最佳答案

我检查了文档,没有办法做我正在寻找的事情。

关于java - 从不同的可执行文件动态添加作业到正在运行的 Quartz 调度程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35159647/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com