我有一个工作角色 (WR-1) 将消息放入 Azure 队列。WR-1 使用 Quartz.NET 进行调度。
我有另一个工作角色 (WR-2) 处理 Azure 队列上的消息。
排队活动完成后,我想从 WR-1 触发 WR-2。
我找不到任何关于如何从另一个工作角色实例化工作角色的材料。可能吗?怎么做到呢?
问问题
188 次
1 回答
2
如果您的工作人员角色是不同的应用程序,您可以利用Service Management API
WR-1 为 WR-2 创建一个新部署。您要做的是将 WR-2 的包和配置文件放入 blob 存储中,当 WR-1 将所有消息放入队列后,您将创建一个新的 WR-2 部署。要使用服务管理 API 以编程方式创建部署,请参见此处:http: //msdn.microsoft.com/en-us/library/windowsazure/ee460813.aspx。但是,您需要确保一旦 WR-2 完成了所有数据,它就会被 WR-1 销毁,这样您就不会继续产生费用。
其他可能性是运行您的工作角色实例以在Master/Slave
配置中运行。假设您的工作人员角色有 2 个实例正在运行。其中一个Master
实例是将数据放入队列中的实例,一旦将数据放入队列中,它将在其他队列中写入一条消息,Slave
表明它已完成写入数据。Slaves
将不断地轮询这个其他队列,一旦他们发现Master
已经完成了数据的放置,他们就可以开始从包含实际数据的队列中获取数据并处理它们。要决定哪个实例将是Master
,哪些将是Slave
您可以使用Lease Blob
功能。能够在 blob 上获取租约的实例将是Master
其他实例Slave
.
于 2013-07-08T07:29:45.640 回答