azure - NCron 表达式“0 0/5 19-7 * * Mon,Tue,Wed”无法解析天蓝色函数
问题描述
我的 Cron 表达式是:0 0/5 19-7 * * Mon,Tue,Wed
这传入了以下 cron 表达式帮助网站 https://ncrontab.swimburger.net/ https://crontab.guru
但是,在打印下一个 50 个计划时,这将失败并出现以下错误:
[2021-06-07T17:11:38.690Z] 执行“Function1”(失败,Id=1005492c-88bd-4cc6-ada5-355cdabdf156,持续时间=488ms)[2021-06-07T17:11:38.692Z] System.Private .CoreLib:执行函数时出现异常:Function1。NCrontab.Signed: '0 0/5 19-7 * * Mon,Tue,Wed' 是一个无效的 crontab 表达式。它必须包含按分钟、小时、天、月和星期几顺序排列的日程表的 5 个组成部分。
以下是打印接下来 50 个计划的 Azure 函数代码:
using System;
using Microsoft.Azure.WebJobs;
using Microsoft.Extensions.Logging;
using NCrontab;
namespace FunctionApp1
{
public static class Function1
{
private const string SCHEDULE_CRON_EXPRESSION = "0 0/5 19-7 * * Mon,Tue,Wed";
private const int NUMBER_OF_FUTURE_SCHEDULES = 50;
#if DEBUG
const bool RUN_ON_STARTUP = true;
#else
const bool RUN_ON_STARTUP = false;
#endif
[FunctionName("Function1")]
public static void Run([TimerTrigger(SCHEDULE_CRON_EXPRESSION, RunOnStartup = RUN_ON_STARTUP)]TimerInfo myTimer, ILogger log)
{
DateTime theScheduleDateTime = DateTime.Now;
var schedule = CrontabSchedule.Parse(SCHEDULE_CRON_EXPRESSION);
for(int i = 0; i < NUMBER_OF_FUTURE_SCHEDULES; i++)
{
theScheduleDateTime = schedule.GetNextOccurrence(theScheduleDateTime);
log.LogInformation($"Next Schedule {i}: {theScheduleDateTime} ");
}
}
}
}
我在这里想念什么?是否有任何官方 Azure 工具可以帮助创建和验证 CRON 表达式?
解决方案
问题是 CRON 表达式包括秒,它产生 6 个表达式值
{second} {minute} {hour} {day} {month} {day-of-week}
但是根据错误
“它必须包含时间表的 5 个组成部分,按分钟、小时、天、月和星期几的顺序排列”
不工作 private const string SCHEDULE_CRON_EXPRESSION = "0 0/5 19-7 * * Mon,Tue,Wed";
工作 私有常量字符串 SCHEDULE_CRON_EXPRESSION = "0/5 19-7 * * Mon,Tue,Wed";
我不确定文档如何以及为什么说包含 {seconds} 并且无法通过 ncron sdk 解析奇怪! https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-timer?tabs=csharp#ncrontab-expressions
推荐阅读
- java - 是否可以在不使用插件的情况下配置 maven 来编译生成的源代码?
- powershell - 如何使用 PowerShell 自动创建 CheckBox?
- ruby-on-rails - 在 Rails 上插入一对一关系
- audiokit - 基于 Audiokit 的应用程序无法处理一些流行的声音字体
- python - Python/Selenium 查找特定的类元素,分析是否包含特定的span类,如果有,复制链接
- python - 带有存根列表的 Pandas wide_to_long
- android - 在 ConstraintLayout 中将 ImageView 与 TextView 对齐
- javascript - 如何在这里摆脱代码重复(lint 错误)
- reactjs - 鼠标右键单击时不关闭材质 UI 菜单
- python - 使用全息视图时如何自动隐藏散景工具栏