【问题标题】:Quartz scheduler not running the cron jobQuartz 调度程序未运行 cron 作业
【发布时间】:2020-05-26 23:06:30
【问题描述】:

我试图在石英调度程序中使用CronTrigger。调度程序正在启动,但作业没有被触发。以下是我的代码,

SchedulerFactory factory = new StdSchedulerFactory();
Scheduler scheduler = factory.getScheduler();
DateBuilder.evenMinuteDate(new Date());
JobDetail job = JobBuilder.newJob(Sample.class).withIdentity("job1", "group1").build();

CronTrigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger1", "group1")
        .withSchedule(CronScheduleBuilder.cronSchedule("0 * * ? * *")).build();

scheduler.scheduleJob(job, trigger);

scheduler.start();

Sample 类代码只有一个打印语句。

当前输出如下,

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.

当前版本,

<dependency>
    <groupId>org.quartz-scheduler</groupId>
    <artifactId>quartz</artifactId>
    <version>2.3.2</version>
</dependency>

我错过了什么吗?

【问题讨论】:

  • 日志输出唯一说的是你的类路径上没有可用的 SLF4J 绑定器。您的调度程序很可能正常工作并且根本没有产生任何日志输出。您可以通过调试应用程序并在Job 中放置断点来验证这一点。请参阅stackoverflow.com/questions/22441068/… 了解可能的活页夹问题解决方案。

标签: java quartz-scheduler


【解决方案1】:

这是您实现 Sample 类的示例:

public class TestCronJob {
    public static void main(String[] args) throws SchedulerException {
        SchedulerFactory factory = new StdSchedulerFactory();
        Scheduler scheduler = factory.getScheduler();
        DateBuilder.evenMinuteDate(new Date());
        JobDetail job = JobBuilder.newJob(Sample.class).withIdentity("job1", "group1").build();

        CronTrigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger1", "group1")
                .withSchedule(CronScheduleBuilder.cronSchedule("0 * * ? * *")).build();

        scheduler.scheduleJob(job, trigger);

        scheduler.start();
    }

    public static class Sample implements Job {

        @Override
        public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
            System.out.println("From job: " + new Date());
        }
    }
}

它每分钟打印一次:

From job: Tue May 26 17:59:00 EEST 2020
From job: Tue May 26 18:00:00 EEST 2020
...

所以,它按预期工作。 在您的情况下,它可能与日志框架有关? 我看到你在输出中有这条消息:

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-15
    • 1970-01-01
    • 1970-01-01
    • 2012-12-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多