public class SensorStartQuartz implements Runnable{
@Override
public void run() {
try {
JobDetail jobDetail = JobBuilder.newJob(StartClientSensorJob.class).withIdentity("job1", "group1").build();
Trigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger1", "group1")
.withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(2).repeatForever())
.build();
//創建調度器
SchedulerFactory schedulerFactory = new StdSchedulerFactory();
Scheduler scheduler = schedulerFactory.getScheduler();
//將任務及其觸發器放入調度器
scheduler.scheduleJob(jobDetail, trigger);
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) throws SchedulerException, InterruptedException {
JobDetail jobDetail = JobBuilder.newJob(StartClientSensorJob.class).withIdentity("job1", "group1").build();
Trigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger1", "group1")
.withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(2).repeatForever())
.build();
//創建調度器
//Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
SchedulerFactory schedulerFactory = new StdSchedulerFactory();
Scheduler scheduler = schedulerFactory.getScheduler();
//將任務及其觸發器放入調度器
scheduler.scheduleJob(jobDetail, trigger);
scheduler.start();
}
}
剛接觸這個,寫的一個例子。這段代碼 單獨執行main的話 ,scheduler.start()后開始每2秒執行一次StartClientSensorJob.class;;但是如果從別的類起執行緒,執行run方法,執行到scheduler.scheduleJob(jobDetail, trigger)后沒有start()方法就開始運行StartClientSensorJob.class了,這是怎么回事呢,瞢了。
uj5u.com熱心網友回復:
可能設定為它剛啟動就先執行一次,然后再按照你設定的時間執行, quartz.properties 組態檔加入這個 試試 misfireInstruction = CronTrigger.MISFIRE_INSTRUCTION_DO_NOTHING轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/66230.html
標籤:Java EE
上一篇:Java swing mysql設計的系統只能在eclipse上使用嗎
下一篇:maven依賴參考問題求助
