Страницы

Поиск по вопросам

пятница, 27 декабря 2019 г.

Quartz.NET. Настройка тригера на вызов через 5 мин. после старта и потом каждый день в 10:00

#c_sharp #quartz


Здравствуйте.
Необходимо по регламенту опрашивать web сервер.

Регламент таков каждый день в 10:00 и 1 раз через 5 мин сразу после запуска программы.

Настроить на вызов триггера в 10:00 я смог

            ITrigger trigger = TriggerBuilder.Create()
            .WithIdentity("trigger3", "group1")
            .WithSchedule(CronScheduleBuilder.DailyAtHourAndMinute(10, 00))
            .ForJob(job)
            .Build();


Но как добавить 1 сработку сразу через 5 мин после старта?

 scheduler.ScheduleJob(job, trigger);        // начинаем выполнение работы


Можно добавить 2 триггера.

            ITrigger trigger = TriggerBuilder.Create()  
             .WithIdentity("trigger", "group1") 
              .StartNow()
             .WithSimpleSchedule(x => x           
                 .WithIntervalInSeconds(10)          
                 .WithRepeatCount(1))                
             .Build();                              


        ITrigger trigger2 = TriggerBuilder.Create()
            .WithIdentity("trigger2", "group1")
            .WithSchedule(CronScheduleBuilder.DailyAtHourAndMinute(22, 04))
            .ForJob(job)
            .Build();


        scheduler.ScheduleJob(job, trigger);
        scheduler.ScheduleJob(trigger2);
        scheduler.Start();


Все работает нормально, но добавляется вызов триггера сразу после старта программы.
Т.е 3 вызова: после старта, через 10 сек, и каждый день в 22:04.

Как убрать 1-ый вызов сразу после старта.
    


Ответы

Ответ 1



В первом тригере, вы, явно указываете запустить выполнение при запуске: .StartNow().

Комментариев нет:

Отправить комментарий