我是quartz.net和cron表达式的新手,我必须在c#dotnet应用程序中创建一个quartz.net调度程序,它应该根据从数据库获取的值在每月,每周和每日执行。< / p>
具有计划详细信息的表。
Id EffectiveDate StartTime Frequency
1 2012-04-22 20:55 Daily
2 2012-04-22 10:12 Weekly
3 2012-04-22 17:00 Daily
4 2012-04-23 02:15 Monthly
5 2012-04-26 18:30 Daily
6 2012-04-27 11:45 Weekly
请帮我解决这个问题。
答案 0 :(得分:3)
@ user1301587,希望你找到了前进的方法,但我注意到你的问题在Google上仍然显示得很高,所以我会继续添加一些伪代码来说明我将如何做到这一点:
遍历时间表列表 并使用日程表构建CronScheduleBuilder实例:
string cronExpression = string.Format(“{0} {1} {2} {3} {4} {5}”, 第二部分, minutePart, hourPart, dayOfMonthPart, monthPart, dayOfWeekPart );
IScheduleBuilder scheduleBuilder = CronScheduleBuilder
.CronSchedule(cronExpression)
.InTimeZone(TimeZoneInfo.Utc);
E.g。 cron表达 0 26 6 * *?在每周的每天上午6:26运行你的工作 我发现的一个问题是,如果你没有指定时区,Quartz将根据你当前的时区应用转换将指定的时间带入UTC时间
现在,您可以使用上面构建的计划构建触发器:
ICronTrigger trigger = (ICronTrigger)TriggerBuilder.Create()
.WithIdentity("TestTrigger")
.WithSchedule(scheduleBuilder)
.Build();
使用THIS站点构建Quart.Net样式表达式