2016-12-05 10 views
1

Я использую фальсификацию Python WSGI Falcon для создания бэкэнд приложения и использования Beaker для управления сеансом. В производстве мы собираемся использовать Gunicorn в AWS.Использование Beaker с Falcon, Python

Там что-то я не мог понять:

Gunicorn будет работать несколько рабочих, так это означает, что переменные среды сохраняются для разных клиентов, которые сделали запросы? Другими словами, это сеанс для одного клиента только для одного клиента или он будет доступен нескольким клиентам, выполняющим запросы в одном и том же рабочем экземпляре Gunicorn?

Это, как я понимаю, сеансы работы с моего чтения:

А человек регистрирует в мое приложение, а user_id добавляется к сеансу с Beaker. Будущие запросы от одного и того же клиента будут иметь этот user_id, хранящийся в сеансе dict. Теперь любые будущие запросы от этого клиента будут иметь доступ к переменным, хранящимся в сеансе. Каждый клиент имеет свои собственные данные сеанса.

Я правильно понял это?

Текущий метод - вернуть идентификатор клиенту (при успешном входе в систему), чтобы передать его на бэкэнд, когда требуется дополнительная информация о пользователе.

ответ

0

Я правильно понял это?

Да, вы делаете, для большей части.

Gunicorn будет запускать несколько рабочих, так это значит, что переменная окружения сохраняется для разных клиентов, которые сделали запросы? Иными словами, это сеанс с бисером только для одного клиента, или будет ли он доступен нескольким клиентам, делающим запросы в том же экземпляре рабочего человека Gunicorn?

мензурку сохранить данные сеанса на стороне сервера, в специальном хранилище идентифицируется уникальным идентификатором сессии, на стороне клиента будет отправить обратно идентификатор сеанса через куки, то сервер (gunicorn работник) может получить данные о сеансе.

Я рекомендую прочитать более подробное объяснение о том, как сессии работает, как этот: http://machinesaredigging.com/2013/10/29/how-does-a-web-session-work/

+0

OK, это довольно хорошо объяснителя. Я сделал еще несколько исследований ... вы можете вернуть session.id на передний план, а затем получить его в последующих запросах с session.get_by_id (id) – JasTonAChair