最近使用gunicorn部署了乙個專案,在啟動的時候,加上了worker 3的引數。也就是說,同時有3個程序存在。
這就引出了程序間通訊的問題。因為有乙個功能只用單執行緒去執行就行了,也就是說,即使啟動100個程序,
這部分功能只有乙個執行的例項才可以。否則系統就紊亂了。
如何在多程序之間共享資料呢?
根據我搜尋到的資料,有以下幾種方案:
介紹:這個很好理解,即使程序再多,連線的都是同乙個資料的同一張表,更新的都是乙個變數的值。
不管任何程序更新了值,後面再執行的程序取到的值肯定就是最新的 了。
比如當前**的***就是生成了乙個檔案。我就在每次執行之前判斷當前是否存在產生時間為這個時間點的檔案存在,
如果存在,直接跳過本次迴圈就好了。
在一開始的設計中就要考慮好是用多執行緒,多程序,還是單執行緒,單程序。
多程序資料共享
不用程序池的多程序的資料共享from multiprocessing import process,queue queue queue def func a,q re f 我是子程序 我放入data q.put re if name main ls for i in range 10 p proce...
Python 多程序 共享資料
coding utf 8 from multiprocessing import process,manager import time import random defkkk a list,number for i in range 10 time.sleep random.randrange ...
python多程序共享資料
python的multiprocessing模組提供兩種共享記憶體,sharedctypes與manager,manager效率較低,但支援遠端共享記憶體。sharedctypes效率較高,快manager兩個數量級,在多程序訪問時與普通記憶體訪問相當 共享方式 支援的型別 shared memor...