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# - 在 C# 中使用 AWS Cloudfront API 创建签名 Cookie

java - 为什么 "Local System"帐户缺少对 NTFS 文件系统的权限(将 java 作为 windows 服务运行)

c# - 如何创建一个设置为太平洋标准时间午夜的 DateTimeOffset

C# 到 VB 地址

c# - CLR 中的模块、程序集、 header

c# - 如何使用 Regex.Split 拆分字符串并保留所有分隔符?

c# - 按照可配置的时间表运行任务的最有效方式

.net - Windows 服务 - 安装 2 个副本

c# - 在 Quartz.NET 中获取触发器属性

C# 如何在每天的特定时间通过 Quartz.net 触发例程