import java.util.ArrayList;
import java.util.Date;
import org.quartz.Job;
import org.quartz.JobDataMap;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.quartz.JobKey;
public class DumbJob implements Job {
String jobSays;
float myFloatValue;
ArrayList state=new ArrayList();
public DumbJob() {
}
public void execute(JobExecutionContext context)
throws JobExecutionException {
JobKey key = context.getJobDetail().getKey();
// 注意这里和之前的例子中是不一样的
<strong>JobDataMap dataMap = context.getMergedJobDataMap();</strong>
state.add(new Date());
System.err.println("Instance " + key + " of DumbJob says: " + jobSays
+ ", and val is: " + myFloatValue);
}
public void setJobSays(String jobSays) {
this.jobSays = jobSays;
}
public void setMyFloatValue(float myFloatValue) {
this.myFloatValue = myFloatValue;</pre>
}public void setState(ArrayList state) {this.state = state;}}
Quartz是一个有着丰富特性的开源任务调度框架,可以和各种各样的Java应用集成--从最简单的独立应用到最复杂的电子商务系统。Quartz可以用来创建简单的或者复杂的几十、几百、甚至成千上万的任务调度任务。任务可以被定义为标准的Java组件,这些组件几乎可以执行你想做的任何事。Quartz Scheduler包括许多企业级特性,例如:JTA事务和集群。
先来一个简单的例子:
package domyself.dusk.quartz;
import org.quartz.JobBuilder;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SimpleScheduleBuilder;
import org.quartz.Trigger;
import org.quartz.TriggerBuilder;
import org.quartz.impl.StdSchedulerFactory;
public class Client {
public static void main(String[] args) throws SchedulerException {
Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
JobDetail jobDetail = JobBuilder.newJob(HelloJob.class).build();
//10秒钟调用一下HelloJob,永远重复下去
Trigger trigger = TriggerBuilder.newTrigger().startNow()
.withIdentity("hello")
.withSchedule(SimpleScheduleBuilder.repeatSecondlyForever(10))
.build();
scheduler.scheduleJob(jobDetail, trigger);
scheduler.start();
// scheduler.shutdown(true);
}
}
HelloJob.java
package domyself.dusk.quartz;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
public class HelloJob implements Job {
public HelloJob() {
}
public void execute(JobExecutionContext context)
throws JobExecutionException
{
System.err.println("Hello! HelloJob is executing.");
}
}
如果你使用Maven管理的你的依赖,很幸运,这儿有一份: