1. 程式人生 > >定時任務schedule(quartz)

定時任務schedule(quartz)

except depend within schedule second .class cut spa 定時

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)