Я новичок в Quartz API и в настоящее время использую кварцевую версию 2.2.x для создания объекта класса планировщика в java для поддержки моего школьного проекта, но столкнулся с исключительным исключением с scheduler.rescheduleJob (trigger.getKey() , cronTrigger); в rescheduleCron функция. Я пытаюсь настроить функцию, чтобы принять выражение cron, чтобы перенести задания кварца и не знаю, что я делаю неправильно. Пожалуйста, помогите мне исправить эту ошибку.NullPointerException с использованием функции переназначения кварца
public class quartzScheduler {
public JobDetail job;
public Trigger trigger;
public Scheduler scheduler;
public void quartzScheduler() throws SchedulerException,InterruptedException
{
job = JobBuilder.newJob(quartzJob.class)
.withIdentity("quartzJob", "group1").build();
trigger = TriggerBuilder
.newTrigger()
.withIdentity("quartzTrigger", "group1")
.startAt(futureDate(1, IntervalUnit.HOUR))
.withSchedule(
SimpleScheduleBuilder.simpleSchedule()
.withIntervalInHours(1).repeatForever())
.build();
scheduler.start();
scheduler.scheduleJob(job, trigger);
}
public void rescheduleCron(String cronExpression) throws SchedulerException
{
Trigger cronTrigger = TriggerBuilder
.newTrigger()
.withIdentity("quartzTrigger", "group1")
.withSchedule(cronSchedule(cronExpression))
.build();
scheduler.rescheduleJob(trigger.getKey(), cronTrigger);
}
public static void main(String[] args)
{
quartzScheduler sch= new quartzScheduler();
try {
sch.rescheduleCron("0 0 * * * ?");
} catch (SchedulerException ex) {
Logger.getLogger(quartzScheduler.class.getName()).log(Level.SEVERE, null, ex);
}
}
Спасибо! Проверив ваше предложение, я понимаю, что пропустил инициализацию планировщика. scheduler = new StdSchedulerFactory(). GetScheduler(); необходимо добавить перед запуском планировщика. – nubbear
Ницца! рад, что это помогло. Я обновил ответ, чтобы это отразить. –