Azure 计划 Web 作业设置

时间:2021-04-16 21:44:08

标签: c# .net azure azure-webjobs

如何基于 settings.json 而不是 TimerTrigger 中的硬编码值运行 webjob?

settings.json

{
  //Runs at 9:30 AM every day
  "schedule": "0 30 9 * * *"
}

Functions.cs

[Singleton]
public static void TimerTick([TimerTrigger("0 * * * * *")] TimerInfo myTimer)
{
    Console.WriteLine($"Hello at {DateTime.UtcNow.ToString()}");
}

它总是使用硬编码值: 接下来 5 次出现 *调度 (Cron: '0 * * * * ')

** 将是:

1 个答案:

答案 0 :(得分:2)

docs 中解释了如何做到这一点:

<块引用>

您可以将计划表达式放在应用设置中,并将此属性设置为用 % 符号包裹的应用设置名称,如本例中所示:“%ScheduleAppSetting%”。

所以,在你的情况下,它会是这样的:

settings.json

{
  //Runs at 9:30 AM every day
  "schedule": "0 30 9 * * *"
}

Functions.cs

[Singleton]
public static void TimerTick([TimerTrigger("%schedule%")] TimerInfo myTimer)
{
    Console.WriteLine($"Hello at {DateTime.UtcNow.ToString()}");
}