私は現在、分散コンピューティングに取り組んでいます。私のワーカーは結果を mongoDB データベースに挿入して返します。コードは正常に動作しますが、接続が開いたままになり、システムのソケットが不足する瞬間があります。これが私のワーカーコードです:
def worker(elt):
client=pymongo.MongoClient(MONGODB_URI)
db = client.get_default_database()
essaiElt = db['essaiElt']
#compute here
essaiElt.insert( elt.toDict())
client.close()
このコマンド「netstat -anbo」を使用すると、まだ開いているすべてのソケット (3000 以上) を確認できます。ワーカーの最大数は 14 ですが、10 000 以上のタスクを処理する必要があります。
...
TCP 10.130.151.11:4999 10.130.137.128:27017 En attente 0
TCP 10.130.151.11:5000 10.130.137.128:27017 En attente 0
タイムアウトを設定しようとしましたが、効果がありません。
データベースを再起動せずにソケットを閉じるにはどうすればよいですか?
Python 2.7.12 ピモンゴ 3.3 mongoDB 3.2.10