在.NET Core中以DI间隔运行的WebJobs

时间:2018-07-31 19:09:16

标签: azure azure-webjobs azure-webjobssdk

我已经有一个在.NET Core 2.1中创建的WebJob,它也使用CLASSES。此特定的WebJob连续运行,而我尝试创建的新WebJob将按设置的时间间隔运行。

在下面的代码中,我告诉WebJob连续运行,并且需要删除这些行,但是我想确保自己做对了。我在要删除的行上加上//删除。有人可以验证我做对了吗?

同样,我们的想法是创建一个将以设定的间隔运行的WebJob,因此我需要删除指示连续运行的WebJob的行。

EVENTS

1 个答案:

答案 0 :(得分:0)

  

我将// REMOVE放在需要删除的行上。有人可以验证我做对了吗?

AFAIK,您要删除的代码行无法告诉webjob按设置的时间间隔运行。

config.Queues.MaxPollingInterval = TimeSpan.FromSeconds(1);

MaxPollingInterval是WebJob将检查队列的最长时间。如果队列为空,则WebJob将不那么频繁地开始检查,最长不超过10分钟。

config.Queues.BatchSize = 2;  //the amount of items your WebJob will process at the same time 

有关更多详细信息,您可以参考有关webjob JobHostConfiguration的这篇文章。

使用Azure WebJobs SDK时,可以使用TimerTrigger声明 run on a schedule 的作业功能。

public static void StartupJob(
[TimerTrigger("0 0 */2 * * *", RunOnStartup = true)] TimerInfo timerInfo)
{
    Console.WriteLine("Timer job fired!");
}

您可以通过安装Microsoft.Azure.WebJobs.Extensions nuget软件包来获得TimerTrigger和其他扩展名。
使用TimerTrigger时,请确保在启动代码中添加对config.UseTimers()的调用以注册扩展名。

config.UseTimers();  //allows us to use a timer trigger in our functions.

在使用Azure WebJobs SDK时,您可以在启用 AlwaysOn 的情况下将代码部署到Continuous WebJob。然后,您可以在该WebJob中添加许多所需的预定功能。