Quartz 调度程序不是 运行 cron 作业
Quartz scheduler not running the cron job
我试图在 quartz 调度程序中使用 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
class 代码只有一个打印语句。
当前输出如下,
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>
我错过了什么吗?
这是实施示例 class 的示例:
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".
我试图在 quartz 调度程序中使用 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
class 代码只有一个打印语句。
当前输出如下,
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>
我错过了什么吗?
这是实施示例 class 的示例:
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".