【发布时间】:2018-03-04 04:04:36
【问题描述】:
我有一个关于服务总线队列机制的问题。我必须设置 docker 容器来运行不同的 python 脚本。每个脚本执行一个特定的图像分析过程。其中一些是集群的。 现在我的问题是:
1) Python 脚本必须从队列中读取消息。如果 2 个容器尝试从同一个队列中提取消息,则应该没有冲突。 是否有任何指南可供我遵循设置此类场景的最佳实践? 我仍然不确定如何将这个单独的脚本聚集在一个图像上,但我正在使用 .yml 撰写文件处理这个集群。
2) 除此之外必须有一个优先队列。我的消息必须优先设置在 C# 代码中,我的 python 需要处理这些消息。而且我需要一个复杂的逻辑来限制相同优先级的消息,即使出现高优先级请求的高峰,其他消息也有机会得到处理。
希望这很清楚。有人可以指导我吗?提前致谢。
【问题讨论】:
-
我将开始查看 pypi 上的 azure 模块提供的 api。您的所有工作容器都将在队列中侦听要处理的工作消息。我会编写处理这些消息的代码,以根据消息的格式执行某些操作。因为看起来工人可以做不同的任务。这将使您能够为所有工作容器使用相同的映像。
-
@Kyle 感谢您的回答。但问题是我正在考虑为进程设置不同的队列,但每个进程仍然会有例如 2 个 docker worker 来监听它们的同一个队列。你能对这个api有点具体吗?我没有找到更多细节。很抱歉,我还有 2 个问题。您对优先级有什么建议吗?通常我们将 CMD 放在 dockerfile 的末尾运行 .py 如果我在同一个图像下有更多的 .py 并且我希望在启动每个不同的 docker 容器时运行一个特定的脚本。有什么建议吗?
标签: c# python azure azure-servicebus-queues