開心一笑
考路考那天,上午有個駕校帶來的15個人全軍覆沒了,原因是有個女孩子很緊張,
路考車上,監考教官看她一直發抖,心生憐憫安慰她:“小姑娘,你別怕,我又不吃人。
”這女孩子轉過頭笑著說:“沒事,我不怕,早上教練跟我說了,考官沒啥好怕的,
你就當一條狗拴在副駕上。”于是,該駕校團滅!!!
提出問題
Quartz如何實現定時器的手動啟動和手動關閉,來提高系統性能???
解決問題
定義一個AyTestJob任務類,繼承QuartzJobBean
package com.evada.de.projcommand.service.impl;
import org.quartz.*;
import org.springframework.scheduling.quartz.QuartzJobBean;
/**
*測試任務類
* Created by Ay on 2016/5/7.
*/
public class AyTestJob extends QuartzJobBean{
@Override
protected void executeInternal(JobExecutionContext jobExecutionContext) throws JobExecutionException {
//jobExecutionContext可以獲得你想要的關于這個定時器的一切
JobDetail jobDetail = jobExecutionContext.getJobDetail();
Scheduler scheduler = jobExecutionContext.getScheduler();
Trigger trigger = jobExecutionContext.getTrigger();
System.out.println(jobDetail.getClass().getName());
System.out.println("在這里處理項目的任務邏輯......");
}
}
寫個測試方法test(),名字有點俗,但管用,解釋下
public void test(){
try {
Scheduler scheduler = schedulerFactory.getScheduler();
//判斷是否有AyTestJob類,有代表任務類在執行任務,定時器已經啟動了,停止它
if(scheduler.getJobDetail(new JobKey("AyTestJob")) != null){
//定時器關閉
scheduler.deleteJob(new JobKey("AyTestJob"));
System.out.println("定時器已經關閉了!!!");
//沒有的話,說明定時器沒有啟動,啟動它
}else{
//獲得定義的AyTestJob
JobDetail myJobDetail = new JobDetailImpl("AyTestJob",Scheduler.DEFAULT_GROUP,AyTestJob.class);
//定義出發器,每10秒觸發一次
Trigger myTrigger = new CronTriggerImpl("AyTestTrigger",
Scheduler.DEFAULT_GROUP, "0/10 * * * * ?");
//設置Job任務類和觸發器
scheduler.scheduleJob(myJobDetail, myTrigger);
//啟動定時器,大功告成!!!
scheduler.start();
System.out.println("每隔10秒的定時器已經啟動了........");
}
} catch (Exception e) {
e.printStackTrace();
}
}
控制臺打印信息如下:
org.quartz.impl.JobDetailImpl
在這里處理項目的任務邏輯......
org.quartz.impl.JobDetailImpl
在這里處理項目的任務邏輯......
org.quartz.impl.JobDetailImpl
在這里處理項目的任務邏輯......
具體定時器如何和項目業務結合,得根據項目需要,這只是一個簡單的示例而已!!!
大功告成!!!
14.png
讀書感悟
來自《初戀這件小事》
- 讓自己努力的那個人,就像自己生命的靈魂,讓我們了解愛的積極意義。
- 現實永遠不及電影來的那么完美。很多時候,相愛的人不能一起走到最后。
- 暗戀是件小事,初戀是件小事,這件小事的名字叫青春