2017-08-03 6 views
1

複数のジョブを順番に実行したい。私はそれを次のようにしようとしていますが、何とかそれはcronジョブを使って引き起こされません。Javaで石英を使用したジョブチェーン

私は正しい実装のアプローチかどうかはわかりません。 誰かがこれについて私を導くことができますか?

おかげで...仕事とそれを実行することができ、トリガIDにグループ名を追加した後

 Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler(); 
     JobChainingJobListener jobListener =new JobChainingJobListener("ChainListener"); 

     JobDetail job1 = JobBuilder.newJob(MyJob1.class) 
       .withIdentity(MyJob1.class.getName()). 
       withDescription(MyJob1.class.getName()) 
       .build(); 

     JobDetail job2 = JobBuilder.newJob(MyJob2.class) 
       .withIdentity(MyJob2.class.getName()). 
       withDescription(MyJob2.class.getName()) 
       .build(); 

     JobDetail job3 = JobBuilder.newJob(MyJob3.class) 
       .withIdentity(MyJob3.class.getName()). 
       withDescription(MyJob3.class.getName()) 
       .build();   

     Trigger jobTrigger = TriggerBuilder.newTrigger() 
       .withIdentity("MyTrigger") 
       .withSchedule(CronScheduleBuilder.cronSchedule(cronTrigger)).build(); 
     scheduler.scheduleJob(job1, jobTrigger);  
     scheduler.addJob(job2, true); 
     scheduler.addJob(job3, true);    

     jobListener.addJobChainLink(job1.getKey(), job2.getKey()); 
     jobListener.addJobChainLink(job2.getKey(), job3.getKey()); 
     scheduler.getListenerManager().addJobListener(jobListener); 
     scheduler.start(); 

答えて

0

。 正しいコードは次のとおりです。

Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler(); 
    JobChainingJobListener jobListener =new JobChainingJobListener("ChainListener"); 

    JobDetail job1 = JobBuilder.newJob(MyJob1.class) 
      .withIdentity(MyJob1.class.getName(),"BatchJobGroup"). 
      withDescription(MyJob1.class.getName()) 
      .build(); 

    JobDetail job2 = JobBuilder.newJob(MyJob2.class) 
      .withIdentity(MyJob2.class.getName(),"BatchJobGroup"). 
      withDescription(MyJob2.class.getName()) 
      .build(); 

    JobDetail job3 = JobBuilder.newJob(MyJob3.class) 
      .withIdentity(MyJob3.class.getName(),"BatchJobGroup"). 
      withDescription(MyJob3.class.getName()) 
      .build();   

    Trigger jobTrigger = TriggerBuilder.newTrigger() 
      .withIdentity("MyTrigger","BatchJobGroup"). 
      .withSchedule(CronScheduleBuilder.cronSchedule("* * * * *")).build(); 

    scheduler.scheduleJob(job1, jobTrigger);  
    scheduler.addJob(job2, true); 
    scheduler.addJob(job3, true);    

    jobListener.addJobChainLink(job1.getKey(), job2.getKey()); 
    jobListener.addJobChainLink(job2.getKey(), job3.getKey()); 
    scheduler.getListenerManager().addJobListener(jobListener); 
    scheduler.start(); 
関連する問題