azure - 控制多个实例中的azure辅助角色并发

标签 azure azure-sql-database azure-worker-roles

我在 azure 中有一个简单的工作角色,它在 SQL azure 数据库上进行一些数据处理。 该工作人员基本上每 2 分钟就会将来自第三方数据源的数据添加到我的数据库中。当我有两个角色实例时,这显然是不必要的。我想要 2 个实例来实现冗余和 99.95 的正常运行时间,但不希望它们同时处理,因为它们只会重复相同的作业。我缺少这方面的标准模式吗? 我知道我可以在数据库中设置标志,但我希望有另一种更简单或更好的方法来管理它。 谢谢

最佳答案

正如 Mark 所建议的,您可以使用 Azure 队列来发布消息。您可以让辅助角色实例将后续消息发布到队列,作为处理当前消息时执行的最后一件事。这应该可以解决马克提出的关于需要信号量的问题。在队列消息中,您可以嵌入时间戳标记何时可以处理消息。创建新消息时,只需在当前时间上添加两分钟即可。

而且...如果情况不明显:如果辅助角色实例在完成处理之前崩溃并且无法重新发布新的队列消息,那也没关系。在这种情况下,当前队列消息将简单地重新出现在队列中,然后另一个实例可以自由地处理它。

关于azure - 控制多个实例中的azure辅助角色并发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4683516/

相关文章:

azure - 从 Windows Azure 平台上的第三方 Web 服务异步提取数据

azure - 无法为 azure 函数应用程序的平均响应时间创建仪表板

c# - Azure 搜索突出显示带双引号的短语

azure-sql-database - 无法将带有系统分配托管标识的 Azure 逻辑应用连接到 Azure SQL Server

azure-sql-database - 如何使Dapper对SqlAzure具有弹性?

c# - Azure 云服务项目与新 .csproj 格式的辅助角色项目不兼容

mongodb - Azure Cosmos DB for Mongo 是否支持物化 View

c# - 如何获取发送到 azure IoT 中心 c# 的设备总数和消息总数

azure - 将 Azure SQL 数据库的备份还原到另一个资源组的另一个 Azure SQL 数据库

performance - Azure Web 和辅助角色 - 2 个小型实例还是 1 个中型实例?