如何将 Continuous Webjob 设置为 Singleton?

How to set Continuous Webjob as Singleton?

我已经看到一些关于使用 settings.job 的指导,但它不起作用 - 在控制台中我看到:

 WebJob singleton setting is False

如何防止 运行 我的 webjob 的多个实例横向扩展?

据我所知,对于 set a continuous job as singleton,我们可以创建一个名为 settings.job 的文件,其内容为:{ "is_singleton": true } 并将其放在 WebJob 目录的根目录下。 我们可以 get continuous job settings 来确定它是否是单例。

GET /api/continuouswebjobs/{job name}/settings

in the console I see: WebJob singleton setting is False

请使用Kudu工具查看WebJob根目录下是否存在settings.job以及“is_singleton”的实际值属性.

如果可以使用WebJobs SDK,我更愿意使用Singleton属性。

https://docs.microsoft.com/en-us/azure/app-service/webjobs-sdk-how-to#singleton-attribute

[Singleton]
public static async Task ProcessImage([BlobTrigger("images")] Stream image)
{
     // Process the image.
}

如果您有类似于 ServiceBus 触发器的东西,您应该将 [Singleton(Mode = SingletonMode.Listener)] 与其他主机设置结合使用。