簡體   English   中英

Dockerized Flask App-具有持續運行腳本的Rest API

[英]Dockerized Flask App - Rest API with continually running scripts

我有一個在本地運行的dockerized Flask應用程序,該應用程序由多個REST API端點組成。 一切都按預期工作,因此在其中一個端點上執行GET請求時,將從Postgres數據庫中檢索數據,然后將其顯示為json。 大。 到目前為止,數據庫只是測試數據,現在我需要不斷用真實數據更新數據庫。

我有從網絡提取數據的腳本,而且我了解了如何使用發布和放置請求將其添加到數據庫中,但是我不了解的是如何以及在何處連續運行此腳本,以及在何處連續運行不會干擾我服務器的REST API部分,反之亦然,幾乎就像它是后端中一個完全獨立的實體一樣。

為此,我是否要創建一個全新的flask應用程序,該應用程序在其自己的服務器上運行,並不斷運行腳本並將已抓取的數據添加到數據庫中,以便其他包含API端點的flask應用程序可以在需要時訪問它? 我覺得自己離這里還很遙遠,並且對於最好的前進方式的任何投入都深表感謝。 謝謝!

在我看來,您一點也不遙不可及。

我要說的是,讓您的API自己站起來-作為數據庫的網關。 在它自己的容器中。

您要執行的抓取是另一個過程-請勿將其混入flask API應用程序中。 相反,由於您已經在docker領域中,請考慮創建另一個將為您進行抓取的映像。 這可以是bash腳本,python應用程序-這並不重要。 只要您可以使其盡可能簡單即可。

您甚至可以考慮是否可以以這種方式制作該應用程序/腳本映像,從而可以並行運行其中的多個映像。

是的,您將需要維護兩個圖像。 但是它們各自將變小,並且變得不那么復雜。 而且,如果操作正確,則可以根據需要擴大活動范圍。

考慮一下UNIX哲學的前兩個陳述:

  1. 使每個程序都做好一件事。 要完成一項新工作,請重新構建而不是通過添加新的“功能”使舊程序復雜化。
  2. 期望每個程序的輸出都將成為另一個程序(尚不為人所知)的輸入。 不要將多余的信息弄亂。 避免嚴格使用列或二進制輸入格式。 不要堅持交互式輸入。

可維護性是軟件開發游戲中的王者。 從長遠來看,雜亂無章的大型項目很難生存。

經過思考:如果您的項目是實驗性的,而您只想證明一些概念,那就這樣做。 並且不要過度思考設計。 太多的項目也因此而死!

至少那些是我的想法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM