0
所以,我對Quartz很新。我有這個應用程序,我從數據庫中獲取數據,將它寫入Excel工作表併發送郵件通知。這必須每週進行一次。爲了進行測試,我已經設置了觸發器,現在每5分鐘重複一次。所以,這裏是我的JobListener:當一個班級調用另一個班級時,Quartz Job不運行
public void contextInitialized(ServletContextEvent servletContext) {
Scheduler scheduler;
try {
System.out.println("Context Initialized");
JobDetail job = JobBuilder.newJob(ScheduledJob.class).withIdentity("schduledJob", "Group").build();
System.out.println("Job Build");
Trigger trigger = TriggerBuilder
.newTrigger()
.withIdentity("simpleTrigger", "group")
.withSchedule(
SimpleScheduleBuilder.simpleSchedule()
.withIntervalInSeconds(300).repeatForever())
.build();
System.out.println("Trigger");
scheduler = new StdSchedulerFactory().getScheduler();
System.out.println("Before Scheduler Start");
scheduler.start();
System.out.println("After Scheduler Start");
scheduler.scheduleJob(job, trigger);
System.out.println("Job Scheduled");
} catch (Exception ex) {
ex.getStackTrace();
}
}
這是我的工作類:
public void execute(JobExecutionContext arg0) {
try {
DataFromDB getData = new DataFromDB();
System.out.println("Job Started");
getData.getDataFromDB();
System.out.println("Job End");
} catch (Exception ex) {
ex.printStackTrace();
}
}
我寫這篇脫穎而出和發送電子郵件的兩個不同的類。這些方法在getDataFromDB()方法內的某處被調用。現在,當我運行我的應用程序時,它不會發生任何錯誤,也不會出現異常,只是在創建對象時從getDataFromDB()方法中調用其他兩個方法。如果我刪除這些行,即創建對象並調用這些方法,它會一直運行直到結束。如果我將它移開並放在某個地方,它會再次運行,然後停止。我不知道發生了什麼或爲什麼。 Thanx提前幫助我。
您是如何驗證呼叫在特定線路停止的?如果您使用調試器來驗證,請確保您運行最新的代碼。 – Adi
多個syso語句。對象初始化之前的行被打印出來,然後沒有任何東西被執行。 –
可以粘貼getDataFromDB()方法嗎? – alpert