使用Quartz 1.6.2(简单触发器)+ Spring 3.0使用动态参数调度多个作业

时间:2013-12-13 05:48:38

标签: quartz-scheduler

我正在尝试使用石英简单触发器创建一个示例调度程序。我的目标是运行一个方法,其中不同的参数由用户动态传递(被视为新的Job),并将其安排在用户定义的时间内,也是动态接收的。

eg: 
public void printMe (String name, int Age, Date dob) {
        system.out.println("Name:"+name+" Age:"+age+" DOB:"+dob);
} 

如何根据动态接收的参数计划和执行此方法,并使用quartz 1.6.2开始日期和时间。我是石英调度员的新手,我不知道怎么做。有没有人帮我提供你的示例程序?

1 个答案:

答案 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