我有一個作爲守護進程運行的Python腳本。在啓動時,它會產生5個進程,每個進程都連接到Postgres數據庫。現在,爲了減少數據庫連接的數量(最終會變得非常大),我試圖找到跨多個進程共享單個連接的方法。爲此,我正在查看multiprocessing.sharedctypes.Value
API。但是,我不知道如何跨進程傳遞使用此API的psycopg2.connection
對象。誰能告訴我怎麼做?在Python中跨進程共享連接到postgres db
我也打開其他想法來解決這個問題。
我不考慮將連接作爲構造函數的一部分傳遞給5個進程的原因是互斥排除處理。我不確定如果遵循這種方法,我可以如何阻止多個進程訪問連接。有人能告訴我這是否正確嗎?
目前尚不清楚你在這裏尋找什麼。 5個連接當然不是問題。你是說你最終可能需要產生100個或1000個進程,每個進程都有自己的連接?如果是這樣,即使您可以共享它們,它們也會綁定到連接池,因爲在任何給定的時間只有一個進程可以使用給定的連接。 – khampson 2014-09-27 05:19:17