1

我正在用django構建一個小型金融Web應用程序。該應用程序要求數據庫具有完整的價格歷史記錄,無論是否有人正在使用該應用程序。這些價格可以在線免費獲得。好方法在應用程序外部運行的異步腳本部署django應用程序

我目前處理這個的方式是通過同時運行一個單獨的python腳本(django之外)下載價格數據並使用sqlite3模塊將其記錄在django數據庫中。

我的部署計劃是在AWS EC2實例上運行應用程序,更改數據庫文件所在的文件夾的權限,然後單獨運行下載腳本。

這是部署這種應用程序的好方法嗎?有什麼缺點? 有沒有更好的方式來處理異步下載和部署? (PythonAnywhere?)

+1

對於你來說維護一個數據庫,然後有一個這些子應用程序可以連接並訪問數據的API呢?這樣你就可以保持當前數據的一個副本。 –

+0

我想過這個,但是如果API是基於web的(即web應用程序必須發出url請求),我認爲它不夠快,因爲我正在處理每秒下載的價格 – gpanterov

回答

1

您可以編寫守護程序代碼並按照this的方法將數據從互聯網上獲取後立即將數據推送到數據庫。由於您的守護進程將獨立於Django運行,因此您還需要處理數據同步相關的問題。一種可能的解決方案是在你的Django模型中使用DateTimeFieldauto_now_add = True,這會讓你知道在數據庫中輸入數據的時間。希望這可以幫助你或其他人尋找類似的答案。