+-
c#-Quartz.Net Cron表达式,每月,每周和每天
我对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表达式,每月,每周和每天 - 乐贴网