我们有一个Cloud Services项目,并设置了一个辅助角色。在我们的工作角色中,我们在特定时间执行任务,并在特定时间将消息放在服务队列中。
如果我们有多个工作人员角色启动并运行,消息会被多次调度,我们必须设置阻止以确保一次只有一个辅助角色执行任务。
相反,我想要做的是使用Azure WebJobs或Azure功能。并让Azure WebJob / Functions安排消息,并且辅助角色可以在特定时间读取消息并执行它。
想知道这种情况的最佳做法是什么,我如何利用Azure Webjobs或Function来做到这一点?是否有任何我可以看到的示例或资源,因为Microsoft提供的资源不是很清楚。
答案 0 :(得分:4)
如果我理解正确您的情况是: 1.工作在某个时间唤醒并将大量消息放入队列中 2.从队列中拾取和处理消息 3。您遇到的问题是,当您有多个辅助角色时,调度程序会多次运行。 如果是这种情况,那么设置在调度程序上运行的Azure功能将是微不足道的,将消息放入队列,然后让另一个Azure功能获取消息。如果您使用Azure Functions动态托管计划,您将获得队列侦听器功能的自动扩展。 Azure管理门户中的Azure Functions UX具有此方案的模板,您可以使用C#或node.js