【发布时间】:2017-10-24 20:51:36
【问题描述】:
我正在使用 Hangfire,我想为我的 RecurringJobs 描述不同的场景。但我无法实现我想要的,如果 CRON 已经有限,Hangfire 使用的 CRON 更多。
我继续阅读 Hangfire 文档,我发现喜欢 https://en.wikipedia.org/wiki/Cron#CRON_expression 以获得比 Hangfire 默认支持的更复杂的表达式。但它们甚至不兼容,例如,Hangfire 只有分钟、小时、月、日、星期几,但如果我使用 L 或 ?就像它在文档上所说的那样,它不起作用的那一天。我有这个错误这个表达式的以下错误16 14 L ? ?:
InnerException = {"'L' is not a valid [Day] crontab field value. It must be a numeric value between 1 and 31 (all inclusive)."}
来自 Hangfire 的 CRON 具有以下方法:Monthly(int day); 如果我选择实例 31,会发生什么?它仍然会在 2 月或 4 月等月份运行,例如每个月的最后一天?还是我需要做一些额外的事情来实现它?
这样是怎么回事?我似乎无法定义用户选择的日期为 31 日的条件,以便始终在该月的最后一天运行后台作业。而且我什至不谈论第 29 天或第 30 天,这也是特殊原因,我总是使用每月的最后一天来处理后台作业。
我虽然使用 Hangfire.CRON 的 Month 方法,但我认为它不会按照我想要的方式处理 29,30 和 31 天。
您是否确认 Hangfire Cron 不使用文档引用的 Cron 表达式,是否有任何方法可以实现我正在寻找的内容?另外,有什么建议的教程或可以帮助我的东西吗?我一直在阅读https://github.com/atifaziz/NCrontab,我认为它是 Hangfire 使用的,但它并没有太大帮助。
【问题讨论】: