Задать вопрос
@James_Obry

Как совместить работу psycopg2 и multiprocessing в python?

Здравствуйте. Пишу код на Python. В своём проекте использую базу данных PostgreSQL, управляю ею при помощи psycopg2. Я пытаюсь запустить 4 функции на отдельных процессорах, если вкратце то эти функции при помощи API вытаскивают необходимую мне информацию с криптобирж и записывают её в базу данных. Но проблема в том что когда я запускаю код то получаю следующую ошибку:
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "C:\Users\maxym\AppData\Local\Programs\Python\Python310\lib\multiprocessing\spawn.py", line 116, in spawn_main
    exitcode = _main(fd, parent_sentinel)
  File "C:\Users\maxym\AppData\Local\Programs\Python\Python310\lib\multiprocessing\spawn.py", line 125, in _main
    prepare(preparation_data)
  File "C:\Users\maxym\AppData\Local\Programs\Python\Python310\lib\multiprocessing\spawn.py", line 236, in prepare
    _fixup_main_from_path(data['init_main_from_path'])
  File "C:\Users\maxym\AppData\Local\Programs\Python\Python310\lib\multiprocessing\spawn.py", line 287, in _fixup_main_from_path
    main_content = runpy.run_path(main_path,
  File "C:\Users\maxym\AppData\Local\Programs\Python\Python310\lib\runpy.py", line 289, in run_path
    return _run_module_code(code, init_globals, run_name,
  File "C:\Users\maxym\AppData\Local\Programs\Python\Python310\lib\runpy.py", line 96, in _run_module_code
    _run_code(code, mod_globals, init_globals,
  File "C:\Users\maxym\AppData\Local\Programs\Python\Python310\lib\runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "D:\Projects\test\Test\main.py", line 3, in <module>
    import functions
  File "D:\Projects\test\Test\functions\__init__.py", line 2, in <module>
    from . import wallet
  File "D:\Projects\test\Test\functions\wallet\__init__.py", line 2, in <module>
    from . import KuCoin
  File "D:\Projects\test\Test\functions\wallet\KuCoin.py", line 17, in <module>
    db = DB()
  File "D:\Projects\test\Test\database.py", line 8, in __init__
    self.pool = Pool(
  File "C:\Users\maxym\AppData\Local\Programs\Python\Python310\lib\site-packages\psycopg2\pool.py", line 59, in __init__
    self._connect()
  File "C:\Users\maxym\AppData\Local\Programs\Python\Python310\lib\site-packages\psycopg2\pool.py", line 63, in _connect
    conn = psycopg2.connect(*self._args, **self._kwargs)
  File "C:\Users\maxym\AppData\Local\Programs\Python\Python310\lib\site-packages\psycopg2\__init__.py", line 122, in connect
    conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
psycopg2.OperationalError


Подскажите пожалуйста в чём проблема
  • Вопрос задан
  • 113 просмотров
Подписаться 1 Простой 2 комментария
Пригласить эксперта
Ответы на вопрос 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
Не надо в многозадачном коде использовать глобальные переменные. Ну и непонятно зачем вам мультипроцессность, если задачи I/O bound.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы