定時任務schedule(quartz)
阿新 • • 發佈:2017-05-04
except depend within schedule second .class cut spa 定時
{
// 調度器
Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
// 任務
JobDetail job = JobBuilder.newJob(MyJob.class).withIdentity("job1", "group1").usingJobData("key", "value")
.build();
// 觸發器
Trigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger1", "group1").startNow()
.withSchedule(simpleSchedule().withIntervalInSeconds(40).repeatForever()).build();
// 調度器關聯任務JobDetail與觸發器Trigger
scheduler.scheduleJob(job, trigger);
// 定時任務啟動
scheduler.start();
}
public class MyJob implements org.quartz.Job
{
/*
* 具體的業務邏輯
*/
@Override
public void execute(JobExecutionContext context) throws JobExecutionException
{
JobDetail jobDetail = context.getJobDetail();
// 獲取參數
JobDataMap jobDataMap = jobDetail.getJobDataMap();
jobDataMap.get("key");
}
}
public static void main(String[] args) throws SchedulerException
{
schedue();
}
}
備註:
Jobkey :JobDetail#getKey(),格式:group.name
TriggerKey : Trigger#getKey(), 格式:group.name
3, Cron表達式
例如:0 0 12 * * ?
4,其它
Maven依賴:
<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>
官網地址: http://www.quartz-scheduler.org/
1, 簡介
Quartz是一個任務調度框架。
核心類:
Scheduler :調度器,所有Job的調度都是由它控制;
JobDetail :生成Job對象的實例,存儲Job對象需要的參數;
Job :執行業務邏輯;
Trigger :定義觸發的條件;
幫助類
SimpleScheduleBuilder:用於構建Scheduler:
JobBuilder :用於構建JobDetail:
TriggerBuilder :用於構建Trigger;
2, 創建任務
public class Test
{
public static void schedue() throws SchedulerException
{
// 調度器
Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
// 任務
JobDetail job = JobBuilder.newJob(MyJob.class).withIdentity("job1", "group1").usingJobData("key", "value")
.build();
// 觸發器
Trigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger1", "group1").startNow()
.withSchedule(simpleSchedule().withIntervalInSeconds(40).repeatForever()).build();
// 調度器關聯任務JobDetail與觸發器Trigger
scheduler.scheduleJob(job, trigger);
// 定時任務啟動
scheduler.start();
}
public class MyJob implements org.quartz.Job
{
/*
* 具體的業務邏輯
*/
@Override
public void execute(JobExecutionContext context) throws JobExecutionException
{
JobDetail jobDetail = context.getJobDetail();
// 獲取參數
JobDataMap jobDataMap = jobDetail.getJobDataMap();
jobDataMap.get("key");
}
}
public static void main(String[] args) throws SchedulerException
{
schedue();
}
}
備註:
Jobkey :JobDetail#getKey(),格式:group.name
TriggerKey : Trigger#getKey(), 格式:group.name
3, Cron表達式
例如:0 0 12 * * ?
4,其它
Maven依賴:
<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>
官網地址: http://www.quartz-scheduler.org/
定時任務schedule(quartz)