开心一笑
考路考那天,上午有个驾校带来的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
在这里处理项目的任务逻辑......
具体定时器如何和项目业务结合,得根据项目需要,这只是一个简单的示例而已!!!
大功告成!!!
读书感悟
来自《初恋这件小事》
- 让自己努力的那个人,就像自己生命的灵魂,让我们了解爱的积极意义。
- 现实永远不及电影来的那么完美。很多时候,相爱的人不能一起走到最后。
- 暗恋是件小事,初恋是件小事,这件小事的名字叫青春