0%

QUARZ—-简单入门DEMO(二)

1
2
3
4
5
6
7
8
<!– quartz –>
<dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.2.1</version> </dependency><dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz-jobs</artifactId> <version>2.2.1</version></dependency>
步骤一:
public class RAMJob implements Job{
@Override public void execute(JobExecutionContext arg0) throws JobExecutionException {
//这里是你要执行什么,关键代码,如订单取消订单
_log.info(“Say hello to Quartz” + new Date());
}

步骤二:

1
2
3
4
5
6
7
8
9
10
11
12
public class RAMQuartz {
private static Logger _log = LoggerFactory.getLogger(RAMQuartz.class);
public static void main(String[] args) throws SchedulerException {
//1.创建Scheduler的工厂
SchedulerFactory sf = new StdSchedulerFactory();
//2.从工厂中获取调度器实例
Scheduler scheduler = sf.getScheduler();
//3.创建JobDetail
JobDetail JobDetail = JobBuilder.newJob(RAMJob.class)
.withDescription(“this is a ram job”) //job的描述
.withIdentity(“ramJob”, “ramGroup”) //jobnamegroup
.build();

说明:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<!– 指定job的名称 –> 
<property name=“name” value=“hw_job”/>
<!– 指定job的分组 –>
<property name=“group” value=“hw_group”/>
//任务运行的时间,SimpleSchedle类型触发器有效
long time= System.currentTimeMillis() + 3*1000L; //3秒后启动任务
Date statTime = new Date(time);
//4.创建Trigger
//使用SimpleScheduleBuilder或者CronScheduleBuilder
Trigger trigger = TriggerBuilder.newTrigger()
.withDescription(“”)
.withIdentity(“ramTrigger”, “ramTriggerGroup”)
//.withSchedule(SimpleScheduleBuilder.simpleSchedule())
.startAt(statTime) //默认当前时间启动
.withSchedule(CronScheduleBuilder.cronSchedule(“0/2 * * * * ?”)) //两秒执行一次
.withSchedule(这里是触发器类型);
.build();
//5.注册任务和定时器
scheduler.scheduleJob(JobDetail, trigger);
//6.启动 调度器
scheduler.start();
_log.info(“启动时间 : ” + new Date());
}
}