Невозможно выбрать движок sqlAlchemy в классе.Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Невозможно выбрать движок sqlAlchemy в классе.

Сообщение Anonymous »

Я хочу использовать модуль многопроцессорности с sqlAlchemy в своем собственном классе.
Вот код:

Код: Выделить всё

from sqlalchemy import create_engine
engine = create_engine(f'mysql+pymysql://a:b@localhost:3306/', server_side_cursors=True, pool_size=20)

class Client(object):
def __init__(self):
self.engine = create_engine(f'mysql+pymysql://a:b@localhost:3306/', server_side_cursors=True, pool_size=20)
self.pool = Pool(6)

def run_in_process(self, x):
conn = self.engine.connect()
print(conn)

def run(self):
x = 'x'
res = self.pool.apply_async(self.run_in_process, (x,))
res.get()

def __getstate__(self):
self_dict = self.__dict__.copy()
del self_dict['pool']
return self_dict

def __setstate__(self, state):
self.__dict__.update(state)

pool = Pool(6)
client = Client()
client.run()
Показаны ошибки:

Код: Выделить всё

  File "test_pickle.py", line 32, in 
client.run()
File "test_pickle.py", line 19, in run
res.get()
File "/home/airflow/.pyenv/versions/3.7.3/lib/python3.7/multiprocessing/pool.py", line 657, in get
raise self._value
File "/home/airflow/.pyenv/versions/3.7.3/lib/python3.7/multiprocessing/pool.py", line 431, in _handle_tasks
put(task)
File "/home/airflow/.pyenv/versions/3.7.3/lib/python3.7/multiprocessing/connection.py", line 206, in send
self._send_bytes(_ForkingPickler.dumps(obj))
File "/home/airflow/.pyenv/versions/3.7.3/lib/python3.7/multiprocessing/reduction.py", line 51, in dumps
cls(buf, protocol).dump(obj)
TypeError: can't pickle _thread._local objects
Я знаю, что многопроцессорная обработка иногда вызывает проблемы из-за рассола, и я знаю, что эта проблема связана с self.engine, поскольку он не может быть маринованным. Но мне нужно использовать engine в этой переменной в классе.

Итак, как мне сделать, чтобы движок можно было выбрать в моем примере?

Заранее спасибо.

Подробнее здесь: https://stackoverflow.com/questions/580 ... -the-class
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • SqlAlchemy, почему движок создает больше соединений, чем «разрешено»
    Anonymous » » в форуме Python
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • SQLAlchemy: движок, соединение и разница сеансов
    Anonymous » » в форуме Python
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Невозможно загрузить мой "движок" C++ в мой "внешний" проект C# - Custom Game Framework
    Гость » » в форуме C#
    0 Ответы
    65 Просмотры
    Последнее сообщение Гость
  • Невозможно прочитать свойство «стиль» неопределенного, js-движок: Hermes
    Гость » » в форуме Android
    0 Ответы
    38 Просмотры
    Последнее сообщение Гость
  • ReactNative Android TypeError: невозможно прочитать свойство «fetch» ​​со значением null, движок js: hermes
    Anonymous » » в форуме Android
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»