我有一个由四个容器组成的docker-compose,所有这些容器执行一个功能:
一个Nginx代理,它将UI和API请求转发到相应的容器(节点容器,烧瓶容器),如下图所示。
还有一个单独的容器,该容器执行长时间运行的python脚本,并且独立于其他容器运行。我现在想通过API创建在“长期运行的脚本”(LRS)容器中执行脚本的功能:
最好的方法是什么?
我看过其他一些与此类似的问题,但是提出的问题比他们回答的要多。我看到的建议包括:
这些解决方案似乎都不理想。我想念什么吗?如何实现预期的功能?
答案 0 :(得分:2)
通常,运行长时间运行的脚本的解决方案是pub-sub模型。您的API会将消息放入执行消息队列中。 worker实例将订阅该队列,并在出现消息时执行您长时间运行的脚本/ query / etc。执行完成后,消息将返回不同的队列,或者结果将放置在预定位置(URL)。
这有两个优点: