具有优先级的Azure Service Bus队列和处理docker容器以处理队列消息

时间:2017-09-22 14:23:44

标签: c# python azure azure-servicebus-queues

我对服务总线队列机制有疑问。我必须设置docker容器来运行不同的python脚本。每个脚本都执行一个特定的图像分析过程其中一些是聚集的。 现在我的 问题 是:

1)Python脚本必须从队列中读取消息。如果2个容器试图从同一队列中提取消息,则不应该发生冲突。 是否有任何指南,以便我可以按照最佳做法设置此类方案? 我仍然不确定如何将这些单独的脚本集中在一个图像上,但我正在使用.yml compose文件处理这个集群。

2)除此之外,必须有优先级队列。我的消息必须在C#代码中优先设置,我的python需要处理这些消息。我需要一个复杂的逻辑来限制具有相同优先级的消息,即使存在高优先级请求的峰值,也有可能使其他消息得到处理。

希望这很清楚。有人可以指导我吗?提前谢谢。

1 个答案:

答案 0 :(得分:0)

根据我的理解并根据我的经验,对于您的方案,我认为最佳做法是仅使用服务总线队列来获取具有优先级属性的这些消息,并创建应用程序以接收这些消息以将相关任务添加到不同的要在Azure Batch Service上处理的优先级Python作业,不使用不同的优先级队列并在Docker容器上处理Python作业。

您可以参考Azure批处理服务的官方document来了解它,批处理作业具有优先级属性以满足您的需求(请从{{3搜索关键字priority }})。

希望它有所帮助。