如何跨多个实例 azure 工作者角色使用同步方法?

How to use Sync Method across multiple instance azure worker role?

我正在使用具有自动缩放功能的 azure worker 角色。当多个实例 运行ning 时,性能良好。但是有些功能不应该同时运行。所以我需要使一个方法或任务同步,或者需要锁定直到另一个完成。需要跨多个 azure 实例实现这个。或者特定函数应该 运行 只在一个实例中。

如何实现?

谢谢

由于每个实例 运行 都是独立的,我认为进行方法或任务同步不会帮助您解决问题,因为每个方法或任务都会 运行 在每个实例中同步。

一定要看看 Leader Election Pattern(当您在那里时,也一定要看看其他云模式)。从本质上讲,这个想法是每个实例都会(因为缺少更好的词:))来执行一个方法,但只有一次实例会成功。将成功的实例是 Leader 并将执行该方法。您可以通过两种方式实现这一点:

  1. Lease Blob - blob 存储中有一个 blob,在执行该方法之前,每个实例都会尝试获取此 blob 的租约。只有一个实例会成功。获取 blob 租约的实例将执行此方法。
  2. 获取消息 - 有关要执行的方法的信息作为消息存储在 Azure 队列中。所有实例都会尝试 GET 来自该队列的消息,但只有一个实例会 GET 消息。获取消息的实例将执行该方法。