Cron 针对Azure功能,每个月的第一个星期二都会有NContab

Cron 针对Azure功能,每个月的第一个星期二都会有NContab,cron,azure-functions,Cron,Azure Functions,我如何使用Azure函数(版本3和.NET Core)创建计时器触发器,这些函数必须在每个月的第一个星期二上午8点执行。从现在开始(2020年8月5日),这必须是接下来的五次: 2020/06/02星期二08:00:00 2020/07/07星期二08:00:00 2020/08/04星期二08:00:00 2020/09/01星期二08:00:00 2020/10/06星期二08:00:00 通过使用,我有了下一个NContab: 08?1/1星期二#1* 但我还有一个例外: 计划表达式08

我如何使用Azure函数(版本3和.NET Core)创建计时器触发器,这些函数必须在每个月的第一个星期二上午8点执行。从现在开始(2020年8月5日),这必须是接下来的五次:

  • 2020/06/02星期二08:00:00
  • 2020/07/07星期二08:00:00
  • 2020/08/04星期二08:00:00
  • 2020/09/01星期二08:00:00
  • 2020/10/06星期二08:00:00
  • 通过使用,我有了下一个NContab:

    08?1/1星期二#1*
    
    但我还有一个例外:

    计划表达式
    08?1/1 Tue#1*
    未被识别为有效的CRON表达式或TimeSpan字符串

    然后,我开始将CRON表达式更改为下一个变量:

    CORN |结果
    ----------------- |-------------------------------------------
    0 0 8 ? 1/1星期二,上面的错误
    0 0 8*1/1星期二1 |以上错误
    0 0 8 1/1星期二1*以上错误
    0 0 8*1/1 Tue 1 |以上错误
    0 0 8 ? 1/1星期二1 |以上错误
    0 0 8*1/1星期二/1 | 2020/05/29 08:00:00-2020/05/30 08:00:00
    0 0 8**周二| 2020/05/30 08:00:00-2020/06/02 08:00:00
    0 0 8*1/1周二| 2020/05/30 08:00:00-2020/06/02 08:00:00
    0 0 8 ? 1/1星期二/2 |以上错误
    

    所以我所做的每一个表达都不会像预期的那样有效。我现在的问题是:正确的表达式是什么?

    不幸的是,计时器触发器使用的是库,它没有“第一个星期二”的概念。我认为最好的方法是将表达式设置为
    0 0 8**2
    在每个星期二早上8点触发,并在实际函数中包含一些代码,如果不是一个月的第一个星期二,这些代码会立即返回。

    不幸的是,计时器触发器使用了库,库中没有“第一个星期二”的概念。我认为最好的方法是将表达式设置为
    0 0 8**2
    ,在每个星期二早上8点触发,并在实际函数中添加一些代码,如果不是本月的第一个星期二,则会立即返回。

    本月的第一个星期一位于从第一个星期一到第七个星期二(包括第一个星期一)的一个日期上。那么cron表达式就很容易得到了

    假设它应该是
    0 0 8 1-7*Tue
    ,下面是我的测试,它显示了前五个日期


    一个月的第一个星期一是从第一天到第七天(包括第一天到第七天)中的一天(而且只有一天)。那么cron表达式就很容易得到了

    假设它应该是
    0 0 8 1-7*Tue
    ,下面是我的测试,它显示了前五个日期