0

50 のプロセスがあり、それらを使用して (たとえば) 20000 の異なる入力値を操作しているとします。(私は pathos ライブラリを使用しています。これは、Python のマルチプロセッシング ライブラリと同様に動作すると思います。)

thread_pool = pathos.multiprocessing.ProcessingPool(threads=50)
thread_pool.map(function, inputs)

プロセスごとに 1 つの SQLAlchemy データベース エンジンを作成したいと考えています (ただし、入力値ごとに作成するリソースがありません)。次に、そのプロセスを使用して処理されるすべての入力が同じデータベース エンジンで動作するようにします。

これどうやってするの?

4

2 に答える 2

1

私は と の両方の著者pathosですmultiprocess。それmultiprocessが実際にpathos使用されていることがわかりましたが、それが事実であることが明らかではないかもしれません。あなたはからそれを行うことができますpathos

>>> import pathos
>>> pathos.pools._ProcessPool 
<class 'multiprocess.pool.Pool'>

上記はPoolからの raw 直接のものですがmultiprocesspathos.pools.ProcessPoolはいくつかの追加機能を備えた上位レベルのラッパーですが、(まだ) 下位レベルのすべてのキーワード引数を公開していませんPool

于 2016-07-09T18:27:58.273 に答える
0

multiprocessライブラリの代わりにライブラリを使用して、これを行う方法を見つけましたpathos。プロセスのプールを作成する場合、各プロセスの開始時に実行される「初期化関数」を指定できます。このイニシャライザ関数では、データベース エンジンを作成し、そのエンジンをプロセスに対してグローバルとして宣言しました。これで、プロセスごとにエンジンが 1 つだけになりました。

于 2016-06-14T18:54:45.333 に答える