我在想同步运行相同角色的多个azure实例的最佳做法。 更准确地说,我想阻止几个工人角色在同一个工作单元上工作。Azure角色间同步
Azure队列在这个问题上似乎没有帮助。 一种选择是使用带锁和存储过程的sql表;但在Azure中使用sql同步似乎有点尴尬。
任何想法?
编辑,我详细的(但简单的问题)如下:
- 有ñ目标。
- 必须以指定的时间间隔(例如30秒 - 每个目标不同)对每个目标执行一个工作单元。
- 我有m工人(托管在h实例)。
- 处理工作单元可能需要10秒到1小时之间的任何时间。
的想法是,我有一个调度是把工作单位在Azure的队列,并且每个米工人将这些读取并处理它们。
问题:
- worker1开始对1单元(这是关于目标1)工作 - 这个人会需要很长时间,说10分钟
- 经过30秒
- 的调度程序为目标1提供另一个工作单元,比如说说单元13
- worker2开始工作unit13,对同一目标1 - 不好
我有一些想法,但他们似乎并不阴天不够,所以我有兴趣看看你会为这个问题申请什么解决方案。
为什么你认为队列在这里不起作用?队列是协调需要一次完成的工作的传统方式。确实有一些细微差别,但90%的情况是与队列。 – dunnry
我同意戴维的回答,排队通常是一个不错的选择。虽然有时候你不能排队。但是,如果是这种情况,请详细描述您的问题,我们会尽力提供更好的答案。 –
与此同时,我已经发布了一个用于Azure UserVoice的创意 - http://entlib.uservoice.com/forums/101257-windows-azure-integration-pack/suggestions/2050987-distributed-synchronization?ref=title在队列不起作用的情况下可能对这些情况有用 –