#java
#java
Вопрос:
public class CronTriggerApp {
public static void main(String[] args) {
try {
SchedulerFactory sf = new StdSchedulerFactory();
Scheduler scheduler = sf.getScheduler();
JobDetail job = JobBuilder.newJob(Main.class)
.withIdentity("dummyJobName", "group1").build();
System.out.println(job);
Date startTime = DateBuilder.nextGivenSecondDate(null, 5);
System.out.println(startTime);
// run every 20 seconds infinite loop
CronTrigger crontrigger = TriggerBuilder
.newTrigger()
.withIdentity("TwentySec", "group1")
.startAt(startTime)
.startNow()
.withSchedule(CronScheduleBuilder.cronSchedule("* * * ? * *"))//0 53 12 * * ? *
.build();
scheduler.start();
scheduler.scheduleJob(job, crontrigger);
//scheduler.shutdown();
} catch (SchedulerException se) {
se.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
}
public class Main implements Job {
public void execute(JobExecutionContext context) throws JobExecutionException
{
System.out.println("Trigger Starts.." new Date());
System.out.println("ALL_OFF");
}
}
Используя приведенный выше код, я могу запланировать задание cron .. но если я хочу отменить запланированное время, как я могу отменить или остановить запланированную задачу?
может ли кто-нибудь, пожалуйста, помочь мне, как я могу остановить или отменить запланированную задачу?
Ответ №1:
Вы можете предоставить конечную точку для его прерывания. И используйте следующую функцию планировщика, чтобы остановить его. планировщик.прерывание(JobDetail.getKey());
Комментарии:
1. Спасибо, Пиюш. Но где я хочу написать эту функцию scheduler.interrupt(JobDetail.getKey());
2. В каком классе я хочу записать данную вами функцию?
3. Это вам нужно решить. Если вы запускаете задание на сервере (который прослушивает какой-либо порт), вы можете предоставить конечную точку для его прерывания. (Rest api, который вызовет эту функцию.). Если это всего лишь простая Java-программа, вам нужно решить, когда вы хотите прервать. это (при ошибке, исключении и т.д…..).