繁体   English   中英

自定义 Azure 定时器触发函数 CRON 值

[英]Customizing Azure timer-triggered functions CRON value

我们有以下场景:

  • 我们的 UI 为用户提供定期运行任务的选项,例如每小时一次、每 12 小时一次或每天一次等。运行任务的后端是 Azure 计时器触发的 function 但它会根据环境变量中定义的配置:
    [Function("JobRunner")]
    public Task RunAsync([TimerTrigger("%RunningCron%")] MyInfo myTimer)
    {
        _logger.LogInformation($"C# Timer trigger function executed at: {DateTime.Now}");
        _logger.LogInformation($"Next timer schedule at: {myTimer.ScheduleStatus?.Next}");
        //Do something
        return Task.CompletedTask;
    }

"%RunningCron%的值是常量,如前所述,它来自环境变量,例如local.settings.json文件等。

我们如何才能从存储用户选择的数据库中获取 CRON 值。

根据您的要求,我们了解到多个用户可能会访问 UI 并相应地更改他们的 CORN 表达式。 使用单个定时器触发函数在这里不是可行的解决方案。 我们建议您在用户尝试更改 CORN 表达式时对应用程序 UI 进行更改,它应该根据该特定玉米表达式使用Rest API创建计时器触发器 function。

例如:

如果您的应用程序只有一个计时器触发器 function,并且有 2 个用户(user1、user2)试图通过传递动态玉米表达式来访问您的应用程序。

  • user1 已将此玉米表达式作为输入 0 0 */6 * * * 传递给应用程序中的特定任务 (job1)。
  • user2 已传递此 CORN 表达式 0 0 * * * 1-5 以在其应用程序中安排特定作业 (job2)。

由于您在应用程序中使用单个计时器触发器,由 user1 调度的 job1 将被 user2 调度的 job2 覆盖。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM