Кварцевый.Чистое расписание ежедневных интервалов

#c# #cron #quartz.net

#c# #cron #quartz.net

Вопрос:

кто-нибудь знает, возможно ли следующее с расписанием cron или другим типом расписания?

Интервал в минутах 5 ежедневно между 1: 30 и 23:00 Каждый второй день

Я попробовал DailyIntervalSchedule, которое приближается, но без предложения every second day. Я также пробовал cron, но потерпел неудачу из-за ежедневного интервала между 1: 30 и 23:00.

Любая помощь действительно ценится. Спасибо T4E

Ответ №1:

Я надеюсь, что метод, который я описываю сейчас, может вам помочь. Вы должны определить два триггера. Эти триггеры должны быть запланированы с одним и тем же заданием.

             // construct a scheduler factory
        IScheduler sched = StdSchedulerFactory.GetDefaultScheduler();

        // define the job and tie it to our HelloJob class
        IJobDetail job = JobBuilder.Create<HelloJob>().StoreDurably()
            .WithIdentity("myJob", "group1") // name "myJob", group "group1"
            .Build();

        sched.AddJob(job,true);

        string cron = "0 0/5 2-23 1/2 * ?"; // interval in minutes 5 2h00 and 23h00 every second day
        string cron1 = "0 30,35,40,45,50,55 1 1/2 * ?"; // 1h30 every second day

        // Trigger the job to run now, and then every 40 seconds
        ITrigger trigger = TriggerBuilder.Create()
            .WithIdentity("trigger", "group1")
            .StartNow()
            .WithCronSchedule(cron)
            .ForJob(job)
            .Build();

       ITrigger trigger1 = TriggerBuilder.Create()
                .WithIdentity("trigger1", "group1")
                .StartNow()
                .WithCronSchedule(cron1)
                .ForJob(job)
                .Build();


        // Tell quartz to schedule the job using our trigger
        sched.ScheduleJob(trigger);
        sched.ScheduleJob(trigger1);

        sched.Start();