2016-12-26 2 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 trigger = (ISimpleTrigger) TriggerBuilder.Create() .WithIdentity (" Trigger2") .StartAt (DateTimeOffset.UtcNow) .WithSimpleSchedule (с => s.WithIntervalInHours (4) .RepeatForever()) .ForJob (secondJob) Строить(); –

Смежные вопросы