我正在尝试使用石英简单触发器创建一个示例调度程序。我的目标是运行一个方法,其中不同的参数由用户动态传递(被视为新的Job),并将其安排在用户定义的时间内,也是动态接收的。
eg:
public void printMe (String name, int Age, Date dob) {
system.out.println("Name:"+name+" Age:"+age+" DOB:"+dob);
}
如何根据动态接收的参数计划和执行此方法,并使用quartz 1.6.2开始日期和时间。我是石英调度员的新手,我不知道怎么做。有没有人帮我提供你的示例程序?
答案 0 :(得分:1)
以下是通过简单触发器
使用quartz作业的示例简单触发1分钟,每次执行的运行延迟1秒:
public static void main(String[] args) throws Exception{
JobDetail job = new JobDetail();
job.setName("dummyJobName");
job.setJobClass(HelloJob.class);
//configure the scheduler time
SimpleTrigger trigger = new SimpleTrigger();
trigger.setStartTime(new Date(System.currentTimeMillis() + 1000));
trigger.setRepeatCount(SimpleTrigger.REPEAT_INDEFINITELY);
trigger.setRepeatInterval(100000);// set time run again is 1 minutes
//schedule it
Scheduler scheduler = new StdSchedulerFactory().getScheduler();
scheduler.start();
scheduler.scheduleJob(job, trigger);
}
您为执行类作业创建类
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
public class HelloJob implements Job
{
public void execute(JobExecutionContext context)
throws JobExecutionException {
printmMe("YourName",20,"12/15/2013");
}
public void printMe (String name, int Age, Date dob) {
system.out.println("Name:"+name+" Age:"+age+" DOB:"+dob);
}
}
上面,该程序使用石英计划来执行作业HellloClass