C# 从辅助角色实例化辅助角色

C# 从辅助角色实例化辅助角色,c#,azure,azure-worker-roles,C#,Azure,Azure Worker Roles,我有一个工作者角色(WR-1)将消息放入Azure队列。WR-1计划使用Quartz.NET。 我有另一个工作者角色(WR-2)处理Azure队列上的消息。 一旦排队活动完成,我想从WR-1触发WR-2。 我找不到任何关于如何从另一个工作者角色实例化工作者角色的资料。 可能吗?怎样才能做到呢 如果您的工作者角色是不同的应用程序,您可以使用服务管理API从WR-1为WR-2创建新部署。您要做的是将WR-2的包和配置文件放入blob存储中,当WR-1将所有消息放入队列后,您将创建一个新的WR-2部署

我有一个工作者角色(WR-1)将消息放入Azure队列。WR-1计划使用Quartz.NET。
我有另一个工作者角色(WR-2)处理Azure队列上的消息。
一旦排队活动完成,我想从WR-1触发WR-2。
我找不到任何关于如何从另一个工作者角色实例化工作者角色的资料。
可能吗?怎样才能做到呢

如果您的工作者角色是不同的应用程序,您可以使用
服务管理API
从WR-1为WR-2创建新部署。您要做的是将WR-2的包和配置文件放入blob存储中,当WR-1将所有消息放入队列后,您将创建一个新的WR-2部署。要使用服务管理API以编程方式创建部署,请参见此处:。但是,您需要确保一旦WR-2完成了所有数据,它就会被WR-1销毁,这样您就不会继续受到指控


另一种可能是运行worker角色实例以在主/从配置中运行。假设有两个工作人员角色实例正在运行。其中一个实例是
实例,该实例将把数据放入队列,一旦数据放入队列,它将在另一个队列中写入一条消息,表示
已完成数据写入
Slaves
将不断轮询另一个队列,一旦他们发现
Master
已经完成了数据的放置,他们就可以开始从包含实际数据的队列中获取数据并进行处理。要决定哪个实例将是
Master
,哪个实例将是
Slave
,您可以使用
Lease Blob
功能。能够在blob上获得租约的实例将是
,而其他实例将是

在查看了这两个选项之后,就azure定价模型而言,第一个选项似乎具有成本效益。如果我错了,请纠正我。我想了解您提到的“如果您的工作人员角色是不同的应用程序”,那么它们来自同一应用程序有何区别。关于您的第一条评论,如果您正确创建和销毁您的WR-2,则第一个选项更便宜。如果您让WR-2继续运行,那么您将承担不必要的费用。关于第二条评论-不同的应用程序,我指的是您的工人角色(WR-1和WR-2)在两个不同的解决方案中,而不是在一个解决方案中。看到我们能够在需要时使用WR-2的部署和销毁策略来降低成本。作为Quartz.NET方法的替代方案,我们是否可以使用任何策略来降低WR-1的成本?我相信使用Quartz.NET将使WR-1永远运行。就像您从WR-1创建WR-2的实例一样,您也可以通过从运行在Windows Azure之外的服务创建WR-1的实例来为WR-1执行相同的操作。这是相同的服务管理API。但是,我不推荐它,因为它会产生外部依赖。如果考虑成本,您可以在一个额外的小型实例中托管WR-1,该实例的成本约为每月15.00美元(0.02*750小时)。