在每个月的最后一天运行的 Cron 表达式

Par*_*ari 5 cron azure webjob

我需要创建一个将在每个月的最后一天运行的 cron 表达式。我需要这个来安排 webjob。

我正在使用这个表达式,但 webjob 并没有L用于查找每个月的最后一天。

"0 0 11 L * *"

谢谢。

Bru*_*hen 2

根据你的描述,我这边也查了一下这个问题。简单的方法,首先我在azure门户上进行了测试,如下:

在此输入图像描述

注意:根据我的测试,特殊字符(?, L, W{day}是无效的。

另外,我用表达式在我这边运行了 webjob 0/5 * * L * *,然后出现以下错误:

未处理的异常:Microsoft.Azure.WebJobs.Host.Indexers.FunctionIndexingException:索引方法“Functions.CronJob”时出错 ---> System.Reflection.TargetInitationException:调用目标已引发异常。---> NCrontab.CrontabException: 'L' 不是有效的 [Day] crontab 字段表达式。---> NCrontab.CrontabException: 'L' 不是有效的 [Day] crontab 字段值。它必须是 1 到 31(包含所有端点)之间的数值

然后我按照这个示例TimerSamples.cs进行操作,发现我们只能重写内置的DailyScheduleWeeklySchedule,但它们无法满足您的要求,我假设您可能需要构建自定义时间表继承TimerSchedule来实现您的目的。

AFAIK,除了使用您的 Web 作业设置 cron 表达式之外,我们还可以利用 Azure Scheduler 按某个计划触发我们的 Web 作业。这是我的测试,你可以参考一下:

此外,为了获得完整的 cron 表达式支持,您可以在Azure/azure-webjobs-sdk-extensions的问题上添加反馈。