+-
我对quartz.net和cron表达式很陌生,我必须在c#dotnet应用程序中创建一个quartz.net调度程序,该调度程序应根据从数据库中获取的值在每月,每周和每天执行一次.
具有调度详细信息的表.
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
请帮我解决这个问题.
最佳答案
@ user1301587,希望您已经找到了前进的道路,但是我注意到您的问题在Google上仍然很高,因此我将继续添加一些伪代码来说明如何执行此操作:
>从您的数据源中获取计划(看起来像RDBMS
您的情况下的数据库表)
>遍历时间表列表
并使用时间表构建CronScheduleBuilder的实例:
字符串cronExpression = string.Format(“ {0} {1} {2} {3} {4} {5}”,
第二部分,
分钟部分,
hourPart,
dayOfMonthPart,
monthPart,
dayOfWeekPart
);
IScheduleBuilder scheduleBuilder = CronScheduleBuilder
.CronSchedule(cronExpression)
.InTimeZone(TimeZoneInfo.Utc);
例如. cron表达式0 26 6 * *?每周的每天早上6:26上班
我发现一个难题是,如果您未指定时区,Quartz将根据当前时区应用转换,将指定时间带入UTC时间
现在,您可以使用上面构建的时间表来构建触发器:
ICronTrigger trigger = (ICronTrigger)TriggerBuilder.Create()
.WithIdentity("TestTrigger")
.WithSchedule(scheduleBuilder)
.Build();
使用THIS网站构建Quart.Net样式表达式
点击查看更多相关文章
转载注明原文:c#-Quartz.Net Cron表达式,每月,每周和每天 - 乐贴网