c# - Quartz.Net cron触发器每月计划一次作业

原文 标签 c# windows-services quartz.net

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

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

谢谢

附言正在使用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);


现在我需要每月触发一次

最佳答案

这就是我实施像您一样的解决方案的方式,

基本上,CronScheduleBuilder类具有方法MonthlyOnDayAndHourAndMinute(day,hour,minutes),您在其中输入天,小时和分钟来运行作业。

除非您习惯使用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);

关于c# - Quartz.Net cron触发器每月计划一次作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25377261/

相关文章:

c# - Quartz.Net每日间隔时间表

quartz.net - 如何获取正在执行的作业名称?

c# - 服务器拒绝了客户端凭据,WCF 作为 Windows 服务

.net - 在 .NET 中编写预定的 Windows 服务

c# - C#属性和重写行为asp.net mvc

c# - 在Visual Studio模板中更改项目文件夹路径

c# - 如何使用c#从应用程序的安装文件夹中读取文件?

c# - 使用Quartz.NET计划Cron作业

c# - Xamarin iOS 内存分析

c# - 时间跨度比较