Фляжка запроса контекста и сельдерея - PullRequest
0 голосов
/ 22 октября 2018

Итак, я разрабатываю мультитенантное приложение Flask.В настоящее время я использую sqlalchemy и шаблон с несколькими схемами.Чтобы определить текущую схему, я использую эту функцию:

def on_pool_checkout(dbapi_conn, connection_rec, connection_proxy):

    cursor = dbapi_conn.cursor()

    if 'tenant' in session:
        query = "SET search_path TO {}, public;".format(session['tenant'])
        print(query)
        cursor.execute(query)
        dbapi_conn.commit()
        cursor.close()
        return

    cursor.execute("SET search_path TO public;")
    print('SCHEMA PUBLIC')
    dbapi_conn.commit()
    cursor.close()

event.listen(Pool, 'checkout', on_pool_checkout)

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

Есть ли способ получить доступ к сеансу в задаче сельдерея или каким-либо другим способом поделиться клиентом с моим событием подключения?

...