我有一個具有以下結構的專案:
backend
|-app # fastapi and celery
|-scrapper # selenium and celery
我正在使用 celery 運行長短任務,因此我將有多個佇列/作業人員。此外,我將有從 呼叫的任務app
,但這將由scrapper
. 我正在考慮如何在容器之間拆分東西,但我不確定如何進行。這是我想做的事情:
- 一個運行 fastapi 的容器
- 與 fastapi 相關的每個工人一個容器。這里的每個容器幾乎都是 fastapi 的副本,但入口點將是運行 celery worker
- 一個運行刮板模塊的容器
- 與刮板相關的每個工人一個容器。這里的每個容器幾乎都是刮板容器的副本,但入口點將是運行 celery worker
我對 docker 有點陌生,這似乎是在浪費資源(擁有同一事物的多個副本,一個運行 fastapi,另一個單獨運行 celery),但如果我理解正確,這就是要走的路。我說的對嗎?
uj5u.com熱心網友回復:
我實際上會有四個不同的容器:
- 快速API
- fastapi-celery (worker(s) 使用 -Q fastapi 運行)
- 刮刀
- scraper-celery (worker(s) 使用 -Q scraper 運行)
這樣做的原因僅僅是能夠輕松管理和擴展基礎架構的任何部分。在某些時候,您可能會發現您沒有足夠的工人來處理繁重的 fastapi 負載 - 然后您只需添加更多fastapi-celery
容器等。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/494792.html
上一篇:JavaScript命令document.getElementsByClassName在特殊頁面上不起作用
下一篇:返回列表