Многопроцессорный результат запроса psycopg2. "Не могу засолить объекты psycopg2.extensions.connection" - PullRequest
0 голосов
/ 09 ноября 2019

В настоящее время я пытаюсь использовать многопроцессорную обработку для обработки большого результата, полученного после запроса psycopg2.

Я разбил результат на несколько списков по 100, а затем отправил их для многопроцессорной обработки.

КогдаТем не менее, я получаю следующую ошибку

TypeError: can't pickle psycopg2.extensions.connection objects

Вот мой запрос psycopg2:

def get_employees(self):

    logging.info('POSTGRESQL QUERY: get_employees')

    try:
        self.cur = self.conn.cursor(cursor_factory=RealDictCursor)

        self.cur.execute(
            "SELECT ..."
        )

        employees = self.cur.fetchall()

    except (Exception, psycopg2.Error) as error:
        print("Error while connecting to PostgreSQL", error)
    finally:
        if self.conn:
            return employees

Вот как я делаю многопроцессорность в этом случае:

self.db = database.ConnectionClass()
self.employees = self.db.get_employees()

pool = Pool()
for i in range(0, len(self.employees), 100):
    pool.apply_async(self.other_function, employees_sublists)

Спасибо,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...