我正在创建一个新的 Azure WebJob 项目 - 它似乎是可以作为 Web 作业运行的控制台应用程序的优化版本。
我希望此作业根据计划运行,但在 Main()
方法中 - 见下文 - Microsoft 为您提供了 host.RunAndBlock()
作业连续运行。
如果我希望作业定期运行,我需要更改它吗?
static void Main()
{
var host = new JobHost();
// The following code ensures that the WebJob will be running continuously
host.RunAndBlock();
}
最佳答案
使用 Azure WebJobs SDK 时,您可以使用 TimerTrigger 来声明按计划运行的作业函数。例如,这是一个在启动时立即运行的函数,然后每两个小时运行一次:
public static void StartupJob(
[TimerTrigger("0 0 */2 * * *", RunOnStartup = true)] TimerInfo timerInfo)
{
Console.WriteLine("Timer job fired!");
}
您可以通过安装 Microsoft.Azure.WebJobs.Extensions 来获取 TimerTrigger
和其他扩展nuget 包。有关 TimerTrigger 和该包中的其他扩展以及如何使用它们的更多信息可以在 azure-webjobs-sdk-extensions repo 中找到。 。使用 TimerTrigger
时,请务必将对 config.UseTimers()
的调用添加到启动代码中以注册扩展。
使用 Azure WebJobs SDK 时,您可以将代码部署到连续 WebJob,并启用AlwaysOn。然后,您可以在该 WebJob 中添加所需的任意数量的计划功能。
关于azure - 预定的网络作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34030441/