quartz调度异常

发布于 2022-09-01 12:40:33 字数 1203 浏览 10 评论 0

下面这段代码在quartz-2.1.5下运行,执行了deleteJob,依然每s运行job,直至将进程杀死。但是在quartz-2.2.1下运行,当执行了deleteJob以后,job就不再执行了。这是怎么回事?另外,如果HelloJob是SimpleTriggerExample的内部嵌套类的话,无论在2.1.5下还是2.2.1下,都不会运行job,这又是怎么回事?感觉quartz有疑问的地方太多了。。

public class HelloJob implements Job {

    @Override
    public void execute(JobExecutionContext context)
            throws JobExecutionException {
        System.out.println("Hello Quartz!");
    }
}

public class SimpleTriggerExample {
    public static void main(String[] args) throws Exception {
        JobDetail job = JobBuilder.newJob(HelloJob.class)
                .withIdentity("job1", "group1").build();

        Trigger trigger = TriggerBuilder
                .newTrigger()
                .withIdentity("job1", "group1")
                .withSchedule(
                        SimpleScheduleBuilder.simpleSchedule()
                        .withIntervalInSeconds(1).repeatForever())
                .build();

        Scheduler scheduler = new StdSchedulerFactory().getScheduler();
        scheduler.start();
        scheduler.scheduleJob(job, trigger);
        Thread.sleep(30000);
        scheduler.deleteJob(new JobKey("job1", "group1"));
    }
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

下壹個目標 2022-09-08 12:40:33

第一个问题可能是低版本的bug.
第二个问题, 可能是因为classloader找不到你嵌套在内部的非public的类.找不到只是不执行而不报错.
没有亲自测试过,只能凭猜测回答.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文