我有一個簡單的函數來檢查URL列表,使用GET
來檢索一些信息並相應地更新DB(PostgresSQL
)。該功能完美。但是,一次一個地瀏覽每個URL會說多少時間。如何在django視圖中使用python多重處理模塊
使用Python,我能夠做到以下平行這些任務:
from multiprocessing import Pool
def updateDB(ip):
code goes here...
if __name__ == '__main__':
pool = Pool(processes=4) # process per core
pool.map(updateDB, ip)
這是相當不錯的了。但是,我試圖找到如何做相同的Django項目。目前我有一個遍歷每個URL的函數(視圖)來獲取信息,並更新數據庫。
我能找到的唯一東西就是使用芹菜,但是對於我想要執行的簡單任務來說,這似乎有點壓倒性。
有什麼簡單的,我可以做或我必須使用芹菜?
這是一個重複出現的任務嗎?也許一個自定義管理命令作爲cronjob運行是另一種選擇。 – ilse2005
這真的取決於你想要的響應時間。您可以讓服務器在處理Celery任務後立即響應,或者可以執行多處理,然後仍需要一些時間。不過,不要打擾'多處理',我建議使用優秀的'joblib'庫。 –