Quartz Scheduler从按钮开始和停止

时间:2015-07-13 09:34:35

标签: java swing quartz-scheduler

我正在尝试使用JAVA创建一个cronjob应用程序。 我正在使用Quartz Scheduler插件。一切都看起来不错,但我必须找到一种方法来停止/暂停它,然后重新启动它。

我使用Swing和带有两个按钮的系统托盘创建了一个GUI。停止并开始。 “开始”按钮工作正常,并启动调度程序输出所需的结果。但是,我无法右键单击系统托盘上弹出的菜单图标,直到调度程序关闭。

以下是启动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在作业运行时没有响应。

1 个答案:

答案 0 :(得分:0)

X_list <- split(X, factor(1:nrow(X))) do.call(rbind, parallel::mclapply(X_list, findmins, Level)) ## [,1] [,2] [,3] ## 1 1 5 6 ## 2 2 3 6 ## 3 1 4 7 ## 4 1 5 6 ## 5 2 5 7 ## 6 2 4 6 ## 7 1 5 8 ## 8 1 5 8 ## 9 1 3 8 ## 10 1 3 8 阻止您的应用程序处理任何输入,直到8秒结束。