我该如何使用Azure函数(版本3和.NET Core)创建计时器触发器,该触发器必须在每个月的上午8点的每个第一个星期二执行。从现在开始(05/08/2020)这必须是接下来的五次出现:
通过使用www.cronmaker.com,我接下来是NCRONTAB:
0 0 8 ? 1/1 TUE#1 *
但是接下来我有一个例外:
计划表达式
0 0 8 ? 1/1 Tue#1 *
无法识别为有效的CRON表达式或TimeSpan字符串。
然后我开始将CRON表达式更改为下一个变量:
CORN | Result
----------------- |-------------------------------------------
0 0 8 ? 1/1 Tue#1 | Error from above
0 0 8 * 1/1 Tue#1 | Error from above
0 0 8 1/1 Tue#1 * | Error from above
0 0 8 * 1/1 Tue 1 | Error from above
0 0 8 ? 1/1 Tue 1 | Error from above
0 0 8 * 1/1 Tue/1 | 2020/05/29 08:00:00 - 2020/05/30 08:00:00
0 0 8 * * Tue/2 | 2020/05/30 08:00:00 - 2020/06/02 08:00:00
0 0 8 * 1/1 Tue/2 | 2020/05/30 08:00:00 - 2020/06/02 08:00:00
0 0 8 ? 1/1 Tue/2 | Error from above
所以我所做的每个表达式都无法按预期工作。我的问题是:正确的表达是什么?
答案 0 :(得分:1)
不幸的是,计时器触发器使用了NCrontab库,该库没有“第一个星期二”的概念。我认为您最好的办法是将表达式设置为0 0 8 * * 2
以在每个星期二的上午8点触发,并在实际函数中添加一些代码,如果不是当月的第一个星期二,该函数会立即返回。
答案 1 :(得分:1)