如何编写Hangfire兼容的每月第二个周一执行的Cron表达式
在Hangfire中实现每月第二个周一8:00执行的定时任务
首先可以明确:Hangfire默认使用的NCrontab库支持扩展Cron表达式语法,你完全可以用标准* * * * *格式的表达式实现需求,具体表达式如下:
0 8 * * 1#2
表达式详细拆解:
0:指定分钟为0分,确保任务在整8点执行8:指定小时为8点(24小时制)*:日期字段不做限制,由周字段控制具体执行日期*:月份字段不做限制,每月都生效1#2:周字段核心规则,1代表周一(NCrontab中0对应周日,1-6对应周一到周六),#2代表当月的第二个周几
对应你给出的示例日期验证:
- 2018年5月第二个周一:5月14日8:00 ✅
- 2018年6月第二个周一:6月11日8:00 ✅
- 2018年7月第二个周一:7月9日8:00 ✅
- 2018年8月第二个周一:8月13日8:00 ✅
- 2018年9月第二个周一:9月10日8:00 ✅
小提示:
如果你的Hangfire版本较旧或自定义了Cron解析器,建议先确认解析库是否支持#扩展语法——不过Hangfire的默认配置都是兼容这个规则的,直接使用即可。
内容的提问来源于stack exchange,提问作者Ivan Ruski
相关产品推荐
相关产品推荐

