Не могу открыть соединение с базой PostgresSQL через psycopg2 при запуске потока в Prefect API

В платформе управления рабочим процессом Prefect написан такой код, задачей является подключиться к БД PostgresSQL, в Pycharm этот поток выполняется отлично, а вот в Prefect API выдает ошибку: Unexpected error: TypeError("can't pickle psycopg2.extensions.connection objects") Возможно проблема в том, что prefect работает в докер контейнере из которого не может получить доступ к базе Postgres, еще была мысль, что сам prefect server работает на базе postgres на том же стандартном порту "5432", но запустив сервер на "5433" проблема не решилась. prefect server и prefect agent запущены через anaconda*

@task
def connect(db_settings):
    connection = psycopg2.connect(db_settings)
    return connection
 
with Flow("Test") as flow:
    connection = connect(DB_SETTINGS)


if __name__ == "__main__":
flow.register(project_name="test")

Ответы (1 шт):

Автор решения: Cofugu

Во всем разобрался, спасибо mrevgenx В итоге просто все что происходит внутри задачи prefect, должно оставаться внутри задачи, делайте классы Task при необходимости. Задачи префекта могут вернуть только простые структуры типа класс из строк, причем прочитан этот класс может быть только тогда, когда будет передан в другую задачу.

→ Ссылка