我們有大約10種不同的Python腳本,它們可以從網上下載數據,從數據庫讀取數據並將數據寫回到該數據庫。他們每10秒鐘重複一次(或最後一次任務完成後的10秒鐘)。重複的任務 - 產生新的進程或連續運行?
問題是,運行這些任務的最佳方法是什麼?我可以想到幾種方法:
a while True運行任務,然後睡眠的時間間隔。它可以像supervisord這樣的監管機構來保護,確保它始終保持正常運轉。
使腳本只執行一次任務,並且每隔10秒由另一個進程從外部調用該腳本。
讓腳本執行任務讓我們說1小時(每10秒鐘一小時),然後讓看門狗確保任務在小時結束後再次運行。
我想,以避免長時間運行的進程,實際上做一些事情,因爲我不想處理過的很長一段時間內存問題等。
附加資料
的腳本是不同的,因爲它們每一個檢索來自不同的源的數據,並且查詢,計算和不同的數據插入到數據庫中。
由於被檢索的數據是實時的,因此每10秒執行一次任務,我們不僅需要非常頻繁地更新它,而且還要將所有歷史數據保存在數據庫中。
腳本中使用了很多資源--MySQL連接,HTTP連接,Redis連接等。我們遇到過使用長時間運行的方法的問題,特別是與MySQL連接有關的問題(比如MySQL服務器已經消失,即使所有連接都已關閉)。因此傾向於讓腳本在較短的時間內運行。
這是什麼常見的方法?
請參閱我的編輯,謝謝! – user1094786 2013-03-26 23:08:36