Quartz Scheduler 从按钮启动和停止
Quartz Scheduler Start and Stop from button
我正在尝试使用 JAVA 创建一个 cronjob 应用程序。
我正在使用 Quartz Scheduler
插件。一切看起来都很好,但我必须找到一种方法 stop/pause 然后重新启动它。
我使用 Swing
创建了一个 GUI 和一个带有两个按钮的系统托盘。停止和开始。 Start 按钮工作正常并启动调度程序输出所需的结果。但是,在调度程序关闭之前,我无法右键单击菜单图标在系统托盘上弹出。
下面是启动 Cronjob 的函数
public static void startCron(String serverAddress, int interval) throws Exception {
JobDetail job = JobBuilder.newJob(RunCron.class).withIdentity("mainCron", "group1").build();
// Trigger the job to run on the next round minute
Trigger trigger = TriggerBuilder
.newTrigger()
.withIdentity("dummyTriggerName", "group1")
.withSchedule(
SimpleScheduleBuilder.simpleSchedule()
.withIntervalInSeconds(interval).repeatForever())
.build();
// schedule it
Scheduler scheduler = new StdSchedulerFactory().getScheduler();
scheduler.start();
scheduler.scheduleJob(job, trigger);
try {
Thread.sleep(8000); //1000 milliseconds is one second.
scheduler.shutdown();
System.out.println("System was shut down");
} catch(InterruptedException ex) {
Thread.currentThread().interrupt();
}
}
Cronjob 只是对服务器的 http 请求和响应。
我在 8 秒后进入睡眠和关机状态,以防止执行永不结束,因为在作业 运行.
时 GUI 没有响应
Thread.sleep(8000);
阻止您的应用程序处理任何输入,直到 8 秒结束。
我正在尝试使用 JAVA 创建一个 cronjob 应用程序。
我正在使用 Quartz Scheduler
插件。一切看起来都很好,但我必须找到一种方法 stop/pause 然后重新启动它。
我使用 Swing
创建了一个 GUI 和一个带有两个按钮的系统托盘。停止和开始。 Start 按钮工作正常并启动调度程序输出所需的结果。但是,在调度程序关闭之前,我无法右键单击菜单图标在系统托盘上弹出。
下面是启动 Cronjob 的函数
public static void startCron(String serverAddress, int interval) throws Exception {
JobDetail job = JobBuilder.newJob(RunCron.class).withIdentity("mainCron", "group1").build();
// Trigger the job to run on the next round minute
Trigger trigger = TriggerBuilder
.newTrigger()
.withIdentity("dummyTriggerName", "group1")
.withSchedule(
SimpleScheduleBuilder.simpleSchedule()
.withIntervalInSeconds(interval).repeatForever())
.build();
// schedule it
Scheduler scheduler = new StdSchedulerFactory().getScheduler();
scheduler.start();
scheduler.scheduleJob(job, trigger);
try {
Thread.sleep(8000); //1000 milliseconds is one second.
scheduler.shutdown();
System.out.println("System was shut down");
} catch(InterruptedException ex) {
Thread.currentThread().interrupt();
}
}
Cronjob 只是对服务器的 http 请求和响应。 我在 8 秒后进入睡眠和关机状态,以防止执行永不结束,因为在作业 运行.
时 GUI 没有响应Thread.sleep(8000);
阻止您的应用程序处理任何输入,直到 8 秒结束。