Quartz使用一

最近有用到quartz,附上代码使用,以免下次忘记<备注:代码也是摘抄某博主的>:

package cn.com.test;

import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.quartz.SchedulerFactoryBean;

import static org.quartz.SimpleScheduleBuilder.simpleSchedule;

public class QuartzTest {
@Autowired
private SchedulerFactoryBean schedulerFactoryBean;
public static void test_1(){
try {
//从调度程序工厂获取一个调度程序的实例
Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
//显示调度程序的名称(这里会展示我们在quartz.properties文件中的名称)
System.out.println("scheduleName = " + scheduler.getSchedulerName());
/**
* 重要:
* 定义一个job,并绑定到我们自定义的HelloJob的class对象
* 这里并不会马上创建一个HelloJob实例,实例创建是在scheduler安排任务触发执行时创建的
* 这种机制也为后面使用Spring集成提供了便利
*/
JobDetail job = JobBuilder.newJob(HelloJob.class).withIdentity("job1", "group1").build();

//声明一个触发器,现在就执行(schedule.start()方法开始调用的时候执行);并且每间隔2秒就执行一次
Trigger trigger = TriggerBuilder.newTrigger() .withIdentity("trigger1", "group1")
.startNow()
.withSchedule(simpleSchedule()
.withIntervalInSeconds(2)
.repeatForever())
.build();
// TriggerBuilder.newTrigger().withIdentity("TaskDeadlock", BasisConstants.SYSTEM_TASK_GROUP).withSchedule(scheduleBuilder).build();
// 告诉quartz使用定义的触发器trigger安排执行任务job
scheduler.scheduleJob(job, trigger);
//启动任务调度程序,内部机制是线程的启动
scheduler.start();
//关闭任务调度程序,如果不关闭,调度程序schedule会一直运行着
//scheduler.shutdown();
} catch (SchedulerException e) {
e.printStackTrace();
}
}

public void test_2(){
try {
//1.调度实例scheduler
Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
// Scheduler scheduler = schedulerFactoryBean.getScheduler();//获得一个调度器
// System.out.println("scheduleName = " + scheduler.getSchedulerName());
//2.JobDetail 实例--->TaskDeadlockRunImpl.class是执行的某个方法里面的execute()方法
            JobDetail job =JobBuilder.newJob(TaskDeadlockRunImpl.class).withIdentity("1_0", BasisConstants.CHILD_TASK_RUN).build();
//3.触发器trigger
Trigger trigger =TriggerBuilder.newTrigger().withIdentity("1_0", BasisConstants.CHILD_TASK_RUN).withSchedule(CronScheduleBuilder.cronSchedule("0/1 * * * * ?")).build();
scheduler.scheduleJob(job, trigger);
System.out.println("scheduler.start");
// scheduler.start();
System.out.println("scheduler.end");
} catch (SchedulerException e) {
e.printStackTrace();
}

}
public static void main(String[] args) {
test_1();
/*QuartzTest t = new QuartzTest();
t.test_2();*/
}
}

猜你喜欢

转载自www.cnblogs.com/healthinfo/p/10348739.html