CRON 表达式在每月的最后一天触发 Azure 函数

问题描述 投票:0回答:2

我可以使用任何 CRON 表达式在每个月的最后一天触发 Azure 函数吗?这似乎是定时器触发器的典型场景,我很惊讶我正在努力弄清楚这一点。

我目前正在使用一种解决方法,即在每月的 28-31 日触发并检查代码(如果是该月的最后一天),但该解决方案感觉有点 hacky。

即使是明确的“不可能”也将不胜感激。

编辑: 这是代码

using Microsoft.Azure.WebJobs;
using Microsoft.Extensions.Logging;
using System;

namespace MyProsj.Functions.Triggers
{
    public static class LastOfEachMonth
    {
        [FunctionName("LastOfEachMonth")]
        public static void Run([TimerTrigger("0 0 20 28-31 * *")] TimerInfo myTimer, ILogger log)
        {
            if (DateTime.Now.AddDays(1).Day == 1)
            {
                //DO STUFF HERE
            }
        }
    }
}
c# .net azure cron azure-functions
2个回答
0
投票

这里是用于在每个月的最后一天运行 Azure 函数触发器的 Corn 表达式。上午 10:15

15 10 * * 5L

有关更多信息,请查看此Corn Expressions


0
投票
        var daysInMonth = DateTime.DaysInMonth(DateTime.UtcNow.Year, DateTime.UtcNow.Month);

        var lastDayOfMonth = new DateTime(DateTime.UtcNow.Year, DateTime.UtcNow.Month, daysInMonth);   
     
        var lastWorkingDayOfMonth = lastDayOfMonth.DayOfWeek switch
        {
            DayOfWeek.Saturday => lastDayOfMonth.AddDays(-1),
            DayOfWeek.Sunday => lastDayOfMonth.AddDays(-2),
            _ => lastDayOfMonth,
        };
© www.soinside.com 2019 - 2024. All rights reserved.