我想知道同步运行相同角色的多个 azure 实例的最佳实践。
更准确地说,我想防止多个工作角色在同一工作单元上工作。
Azure 队列似乎对这个问题没有帮助。
一种选择是使用带有锁和存储过程的 sql 表;但是在Azure中使用sql同步似乎有点尴尬。
有任何想法吗?
编辑,我的详细(但简化的问题)如下:
- 有n目标。
- 必须以指定的时间间隔(例如 30 秒 - 但每个目标都不同)对每个目标完成一个工作单元。
- I have m工人(托管于h实例)。
- 处理一个工作单元可能需要 10 秒到 1 小时之间的时间。
我的想法是我有一个调度程序将工作单元放入 Azure 队列中,并且每个工作单元m工作人员将阅读并处理它们。
问题:
-
worker1开始工作unit1(这是关于target1) - 这个会花很长时间,比如说 10 分钟
- 30秒过去
- 调度程序将另一个工作单元放入target1, say unit13
-
worker2开始工作unit13,反对同样的target1 - not good
我有一些想法,但似乎没有cloudy足够了,所以我很想知道您会应用什么解决方案来解决这个问题。
我刚刚写了几篇关于使用 blob 租赁来做此类事情的博客文章。看http://blog.smarx.com/posts/managing-concurrency-in-windows-azure-with-leases http://blog.smarx.com/posts/managing-concurrency-in-windows-azure-with-leases and http://blog.smarx.com/posts/building-a-task-scheduler-in-windows-azure http://blog.smarx.com/posts/building-a-task-scheduler-in-windows-azure.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)