1

我的自动缩放 Azure 网站上有一个持续运行的 WebJob。

我的 WebJob 是一个带有 while(true) 循环的简单控制台应用程序,它订阅 Azure 服务总线上的某些消息并对其进行处理。我不想两次处理相同的消息,所以当网站被缩放时,另一个 WebJob 开始我需要它来检测另一个实例已经在运行并且只是坐在那里什么都不做,直到它被杀死(通过缩小再次)或另一个实例被杀死。在最后一种情况下,第二个 WebJob 应该检测到另一个不再接管。

有接盘侠吗?

4

1 回答 1

4

您应该创建一个队列(使用服务总线或存储队列)并取消作业(创建和管理对消息的租约)并从那里处理它们。如果该租约管理得当,则该作业应该只处理一次,尽管您应该确保它是幂等的,以防万一,因为在某些情况下它会被处理多次。

于 2014-03-13T12:21:34.527 回答