1. 程式人生 > >Quartz定時排程器03

Quartz定時排程器03

package com.demo.quartz.quartz01;

import java.text.SimpleDateFormat;
import java.util.Date;

import org.quartz.Job;
import org.quartz.JobDataMap;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.quartz.JobKey;
import org.quartz.TriggerKey;

public class HelloJob implements Job {
	
	public void execute(JobExecutionContext context) throws JobExecutionException {
		// TODO Auto-generated method stub
		SimpleDateFormat sf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		System.out.println(sf.format(new Date()));
		JobKey jobKey=context.getJobDetail().getKey();
		System.out.println("job : name is "+jobKey.getName()+ ", group is "+jobKey.getGroup());
		TriggerKey triggerKey=context.getTrigger().getKey();
		System.out.println("trigger : name is "+triggerKey.getName()+ ", group is "+triggerKey.getGroup());
		
		JobDataMap jobDataMa=context.getJobDetail().getJobDataMap();
		JobDataMap triggerDataMap=context.getTrigger().getJobDataMap();
		String message=jobDataMa.getString("message");
		String triggerMsg=triggerDataMap.getString("message");
		System.out.println("job message is "+ message);
		System.out.println("trigger message is "+ triggerMsg);
	
	}

}
package com.demo.quartz.quartz01;

import java.text.SimpleDateFormat;
import java.util.Date;

import org.quartz.JobBuilder;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SchedulerFactory;
import org.quartz.SimpleScheduleBuilder;
import org.quartz.Trigger;
import org.quartz.TriggerBuilder;
import org.quartz.impl.StdSchedulerFactory;

public class HelloScheduler
{

	public static void main(String[] args) throws SchedulerException
	{
		SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

		// 建立JobDetail例項,將該實力和HelloJob繫結
		JobDetail jobDetail = JobBuilder.newJob(HelloJob.class).usingJobData("message", "hello my job")
				.withIdentity("myjob", "group1").build();

		// 建立Trigger例項,定義該job立即執行,並且每隔兩秒執行一次,直到永遠
		Trigger trigger = TriggerBuilder.newTrigger().usingJobData("message", "hello my trigger")
				.withIdentity("myTrigger", "group1").startNow()
				.withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(2).repeatForever()).build();
		// 建立Scheduler例項
		SchedulerFactory schedulerFactory = new StdSchedulerFactory();
		Scheduler scheduler = schedulerFactory.getScheduler();
		scheduler.start();
		// 列印當前時間
		System.out.println(sf.format(new Date()));
		scheduler.scheduleJob(jobDetail, trigger);
	}

}