[英]Quartz.Net cron trigger to schedule a job every month
我正在嘗試使用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);
現在我需要每月觸發一次
這就是我實施像您一樣的解決方案的方式,
基本上, 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);
我認為可以通過制作cronExpression並將其作為參數添加到CronScheduleBuilder中來解決該問題。
代碼將如下所示:
static CronScheduleBuilder cronSchedule;
job = JobBuilder.Create<Jobs>()
.WithIdentity(Params.JobsKind.BlaBlaBla.ToString(), "group1")
.Build();
CronExpression cexp = new CronExpression("0 50 10 1 * ?");
cronSchedule = CronScheduleBuilder.CronSchedule(cexp);
trigger = TriggerBuilder.Create()
.WithIdentity("triggerBlaBlaBla", "group1")
.StartNow()
.WithSchedule(cronSchedule)
.Build();
sched.ScheduleJob(job, trigger);
感謝誰試圖幫助我
您可以使用CalendarIntervalSchedule,使用RepeatFrequency為1
trigger1 = TriggerBuilder.Create()
.ForJob(jobDetail1)
.StartAt(startDate)
.EndAt(endDate)
.WithIdentity(triggerName, "group1")
.WithCalendarIntervalSchedule(x => x.WithIntervalInMonths(RepeatFrequency))
.WithCalendarIntervalSchedule(x => x.WithMisfireHandlingInstructionFireAndProceed())
.Build();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.