2016-12-26 35 views
1

我試圖設置2個和更多的計劃任務運行4小時差異,因爲當第一個任務凝視。要做到這一點我使用Quartz.NET庫像以下:使用Quartz.net安排多個計劃任務

ITrigger firstTrigger = TriggerBuilder.Create() 
        .WithIdentity("Trigger1") 
        .StartNow() 
        .WithCronSchedule("0 0 0/4 * * ?") 
        .ForJob("Job1") 
        .Build(); 

IJobDetail secondJob = JobBuilder.Create<StoreAnalyticsUsersUpdate>() 
       .WithIdentity("Job2") 
       .Build(); 

ITrigger secondTrigger = TriggerBuilder.Create() 
       .WithIdentity("Trigger2") 
       .StartAt(DateTimeOffset.UtcNow) 
       .WithCronSchedule("0 0 0/4 * * ?") 
       .ForJob("Job2") 
       .Build(); 

ISchedulerFactory sf = new StdSchedulerFactory(); 
IScheduler sc = sf.GetScheduler(); 
sc.ScheduleJob(firstJob, firstTrigger); 
sc.ScheduleJob(secondJob, secondTrigger); 
sc.Start(); 

我已經寫了測試的目的這個代碼,只是爲了看看,如果tasks'll正常運行。在我運行我的應用程序後,沒有發現任何計劃任務...

P.S.我致電的Global.asax類,所以這不是問題的方法...

protected void Application_Start() 
{ 
    AreaRegistration.RegisterAllAreas(); 
    RouteConfig.RegisterRoutes(RouteTable.Routes); 
    JobScheduler.StartCompetitorResearchUpdate(); // this is the method for the above code 
} 

我在做什麼錯在這裏? 。

回答

2

.StartAt(DateTimeOffset.UtcNow).WithCronSchedule("0 0 0/4 * * ?").ForJob("Job2").Build(); 

測試與

.StartAt(DateTimeOffset.UtcNow).WithCronSchedule("0 0 0/4 * * ?").ForJob(secondJob).Build(); 
+0

我用一個簡單的一個嘗試,如:.StartNow()構建();而且兩者工作崗位同時正常運行......產生的問題是,現在看來,文我添加了「WithCronSchedule」語句出於某種原因OO –

+0

測試與 ITrigger觸發=(ISimpleTrigger)TriggerBuilder.Create() .WithIdentity(」 Trigger2「) .StartAt(DateTimeOffset.UtcNow) .WithSimpleSchedule(s => s.WithIntervalInHours(4).RepeatForever()) .ForJob(secondJob) .Build(); –