2012-03-26 22 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。

相关问题