2012-03-22 1 views
1

私はdatetimes(約5000要素)の配列を持ち、これらのdatetimesのそれぞれでジョブを実行したいと思います。 配列内のDatetimesは定期的なものではなくカスタムなものなので、CronTriggerなどは使用できません。 与えられた時間に起動するトリガーを作成する簡単な方法はありますか? はい、私は、私の仕事が終わった後に毎回新しいトリガーを始めることができることを知っています。しかし、この方法は私にとっては便利ではありません。Quartz.net - カスタム時間で起動する

+0

をtrigger.Theシンプルな発火するトリガーn回のための日時をカスタマイズすることができますあなたを助けてくれる人が見つけたまた、タグの説明を必ず読んでください。石英タグは価値が下がります。 –

答えて

1

独自のトリガーを作成し、それを使用してジョブを実行することができます。 v1.0を使用している場合は、Triggerを拡張するクラスを作成する必要があります。詳細はdocsをご覧ください。 v2.0を実行している場合は、AbstractTriggerを拡張します。

+0

Greate、これを行うには簡単な**方法を求めました。私自身のトリガーを作ることは簡単な方法ではありません:( – Sergey

+0

ソースで 'SimpleTriggerImpl.cs'を見てください。 – tomfanning

0

あなたの質問があることを確認助けるためにあなたの質問に、少なくとも1個の言語タグを含めるようにしてくださいしてください、あなたのカスタマイズ時から

public class JobScheduler 
    { 
     public static void Start() 
     { 
      ISchedulerFactory sf = new StdSchedulerFactory(); 
      IScheduler sched = sf.GetScheduler(); 
      DateTime[] Jobtime = new DateTime[5]; //Array Have Job time 
      startDate[0] = new DateTime(2015, 6, 3, 16, 57, 0); 
      startDate[1] = new DateTime(2015, 6, 3, 16, 59, 0); 
      startDate[2] = new DateTime(2015, 6, 3, 17, 1, 0); 
      startDate[3] = new DateTime(2015, 6, 3, 17, 4, 0); 

      for (int i = 1; i < Jobtime.Count(); i++) 
     { 

      sched.Start(); 


      string strjob = "job" + i.ToString(); 
      string strgroup = "group" + i.ToString(); 
      string strtigger = "trigger" + i.ToString(); 

      IJobDetail job = JobBuilder.Create<EmailJob>() 
       .WithIdentity(strjob, strgroup) 
       .Build(); 
      ISimpleTrigger trigger = (ISimpleTrigger)TriggerBuilder.Create() 

       .WithIdentity(strtigger, strgroup) 
       .StartAt(Jobtime[i]) 

       .Build(); 

      sched.ScheduleJob(job, trigger); 

     } 

     } 
    } 
関連する問題