gpt4 book ai didi

c# - 如何使用云服务(Web角色)实现主动/被动模式?

转载 作者:太空宇宙 更新时间:2023-11-03 13:14:15 25 4
gpt4 key购买 nike

我有一个网络角色在后台线程中执行一些后台处理。

我想要运行 Web 角色的多个实例,但我只希望其中一个实例处理后台作业。如果运行后台处理的指定实例由于某种原因停止工作,我希望另一个实例取代它。

在 Azure 中实现此功能的最简单方法是什么?

我想过定期检查 RoleEnvironment.RolesRole 对象的 Instances 集合,并仅在当前实例具有最小的 Id(或使用其他启发式方法决定),因此只有一个实例可以处理后台作业。
这种方法应该有效吗?角色实例之间是否进行心跳通信,Instances 集合是否会相应更新?

最佳答案

您可以尝试使用blob lease mechanism控制您的实例。

您的所有实例都试图获取锁,第一个实例获得了锁。剩下的就退后并稍后检查。处理实例可以更新锁。这样,如果您的处理实例失败(甚至是硬失败),租约将在租约时间过后释放,并且下一个实例可以获得锁并开始处理。

如果您依赖具有最小 ID 的Instance,您可能最终会遇到实例已启动并运行但后台处理线程被挂起/终止的情况。

看看here在这里 here

更新: Leader Election Pattern

关于c# - 如何使用云服务(Web角色)实现主动/被动模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27149913/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com