縮放

Azure Webjobs 在 Azure 應用服務上執行。如果我們水平擴充套件 App Service(新增新例項),每個例項都有自己的 JobHost

請注意,這僅適用於在連續模式下執行的 WebJobs。按需和預定的 WebJobs 不受水平擴充套件的影響,它們始終執行單個例項。

如果你有連續的 WebJob 處理佇列訊息,並且你將 App Service Plan 擴充套件到 3 個例項,則將執行 3 個 WebJob 例項。

你可能希望在單個例項中執行 WebJobs,因為你可能需要確保只存在一個處理管道。對於那些 WebJobs,你可以新增 Singleton 屬性。

[Singleton]
public static void SingletonQueueProcessing([QueueTrigger("my_queue")] MyPOCOClass aMessage)
{
    //...
}

這是通過 Azure Blob Leases 實現的,用於分散式鎖定。