Quartz.Net cron触发器每月安排一项工作

ra2*_*a22 1 c# windows-services quartz.net

我正在尝试使用quartz.net创建一个每1个月运行一次的工作

我对如何实现这一点感到有些困惑,任何人都可以就解决方案提出建议

谢谢

PS我正在使用Quartz 2.2.2.400版

编辑:我做了每日触发

job = JobBuilder.Create<Jobs>()
            .WithIdentity(Params.JobsKind.BlaBlaBla.ToString(), "group1")
            .Build();

        trigger = TriggerBuilder.Create()
            .WithIdentity("triggerBlaBlaBla", "group1")
            .WithDailyTimeIntervalSchedule(x => x.StartingDailyAt(Params.BlaBlaBLa)
                .WithIntervalInHours(24)
                .OnEveryDay())
            .Build();

        sched.ScheduleJob(job, trigger);
Run Code Online (Sandbox Code Playgroud)

现在我需要每月触发一次

Adr*_*ley 8

这就是我实现我的解决方案的方式,就像你的一样,

基本上,CronScheduleBuilder类有一个方法MonthlyOnDayAndHourAndMinute(日,小时,分钟),您可以在其中输入作业运行的日,小时和分钟.

除非您习惯使用unix CRON作业,否则它可以完美地运行并且更易于阅读.希望这可以帮助.

            // define the job and tie it to  class
            IJobDetail job_tcs = JobBuilder.Create<DuesFeedbackJob>()
                .WithIdentity("job_tcs", "group1")
                .Build();
            // Trigger the job to run every 2nd of the month at 1 am
            ITrigger trigger_tcs = TriggerBuilder.Create()
                .WithIdentity("Run Infinitely every 2nd day of the month", "Monthly_Day_2")
                .StartNow()
                .WithSchedule(CronScheduleBuilder.MonthlyOnDayAndHourAndMinute(2, 1, 0))
                .Build();

            // Tell quartz to schedule the job using our trigger
            Console.WriteLine("Scheduling " + job_tcs);
            scheduler.ScheduleJob(job_tcs, trigger_tcs);
Run Code Online (Sandbox Code Playgroud)