マルチプロセス プール オブジェクトを使用しようとしています。各プロセスが開始時にデータベース接続を開き、その接続を使用して、渡されたデータを処理したいと思います。(データのビットごとに接続を開いたり閉じたりするのではなく)。 for、しかし、ワーカーとイニシャライザーがどのように通信するかについて頭を悩ませることはできません。だから私はこのようなものを持っています:
def get_cursor():
return psycopg2.connect(...).cursor()
def process_data(data):
# here I'd like to have the cursor so that I can do things with the data
if __name__ == "__main__":
pool = Pool(initializer=get_cursor, initargs=())
pool.map(process_data, get_some_data_iterator())
get_cursor() から process_data() にカーソルを戻すにはどうすればよいですか (またはどうすればよいですか)?