2012-03-26 6 views
1

私はQuartznetスケジューラーを初めて使用しています。 "CalendarIntervalTriggerImpl"トリガを実装しようとしています。私はトリガーに渡された日付( 2010年の日)を設定します。Job.Executeは、渡されたStartTimeUTCでジョブをスケジューリング中にすぐにトリガーします。

Jobdetail &トリガーを渡してScheduleJobメソッドを呼び出すと、直ちにJob.Executeメソッドがトリガーされます。私は に何かがないかどうか。私を正しい方法で案内してください。あなたは失火命令を設定しない場合

次のサンプルコードを見てください

class Program 
{ 
    private static IScheduler _scheduler; 

    static void Main(string[] args) 
    { 
     Console.WriteLine(DateTime.Now.Day); 
     ISchedulerFactory schedulerFactory = new StdSchedulerFactory(); 
     _scheduler = schedulerFactory.GetScheduler(); 
     _scheduler.Start(); 
     AddJob(); 
    } 

    public static void AddJob() 
    { 
     IJob myJob = new MyJob(); //This Constructor needs to be parameterless 
     JobDetailImpl jobDetail = new JobDetailImpl("Group1", "Group1", myJob.GetType()); 
     CalendarIntervalTriggerImpl trigger = new CalendarIntervalTriggerImpl("Group1", "Group1", IntervalUnit.Week, 2); 
     trigger.StartTimeUtc = DateTime.Now.AddDays(-3).AddSeconds(15); 
     _scheduler.ScheduleJob(jobDetail, trigger); 
     Console.WriteLine("Next : {0}", trigger.GetNextFireTimeUtc().Value.ToLocalTime()); 
    } 
} 

internal class MyJob : IJob 
{ 
    public void Execute(IJobExecutionContext context) 
    { 
     Console.WriteLine("Executing the job..."); 
    } 
} 

答えて

0

これがデフォルトの動作です。 DoNothingに2を設定します。

関連する問題