Azure 了解WebJobs如何运行

Azure 了解WebJobs如何运行,azure,azure-webjobs,Azure,Azure Webjobs,我正在努力为自己回答这个问题,所以任何人都可以为我回答。webjobs是如何运行的?我的意思是Azure框架是否管理对WebJob的访问,以及多个实例是否在单独的进程中运行 我的印象是,默认情况下,我会得到12或16个并行实例。这是正确的吗?因此,如果在触发我的webjob的队列上放置三条消息,它们都将并行运行。好的,当您扩展多个实例时,webjob将在单独的进程中并行运行在这些实例上。但这是有前提的, webjob应该是连续的,而不是手动/计划的 要正确执行此操作,您需要在标准模式下运行,并启

我正在努力为自己回答这个问题,所以任何人都可以为我回答。webjobs是如何运行的?我的意思是Azure框架是否管理对WebJob的访问,以及多个实例是否在单独的进程中运行


我的印象是,默认情况下,我会得到12或16个并行实例。这是正确的吗?因此,如果在触发我的webjob的队列上放置三条消息,它们都将并行运行。

好的,当您扩展多个实例时,webjob将在单独的进程中并行运行在这些实例上。但这是有前提的,

  • webjob应该是连续的,而不是手动/计划的
  • 要正确执行此操作,您需要在标准模式下运行,并启用始终打开设置
  • 注意:如果在webjob中使用TimerTrigger,它将不会向外扩展。参考这个

    在幕后,TimerTrigger使用WebJobs SDK的Singleton功能,以确保在任何给定时间只有一个触发函数的实例运行。当JobHost启动时,对于每个TimerTrigger函数,都会使用blob租约(单例锁)。这个分布式锁确保在任何时候只有一个调度函数的实例在运行


    关于这个问题的更多细节,这里有两篇类似的文章供您参考。

    关于TimerTrigger的有趣之处我没有意识到,但对于连续作业,我指的是它如何在实例上运行。我注意到,如果一个队列中有多条消息,它们似乎是在Parralell中处理的。这是如何管理的。@166如我在回复中所述,每个作业实例将通过从队列中选择不同的消息。BatchSize是我想知道的。config.Queues.BatchSize控制将在Parrelell中处理的项目数。因此,一个实例可以处理多个项@是的,简而言之,SDK将管理它。很高兴你的问题解决了。