Создание потока пилонов с доступом к app_globals - PullRequest
4 голосов
/ 20 января 2011

Я хотел бы создать процесс, работающий в фоновом режиме моей среды пилонов, не связанный с клиентскими запросами, с доступом к объекту пилонов app_globals. Общая цель этого процесса состоит в том, чтобы проверить сеансы клиента на предмет истечения срока и выполнить некоторый анализ после истечения срока действия.

Возможно ли это? Я пытался создать поток в файле config/environment.py, но при попытке получить доступ к свойствам app_globals я получаю следующую ошибку:

TypeError: No object (name: app_globals) has been registered for this thread

Заранее спасибо,
Будет

Ответы [ 2 ]

3 голосов
/ 05 августа 2011

Вам необходимо зарегистрировать app_globals (в пилонах app_globals, зарегистрированных по запросу):

pylons.app_globals._push_object(config['pylons.app_globals'])
1 голос
/ 20 января 2011

Объект, к которому вы пытаетесь получить доступ: StackedObjectProxy , зарегистрированный пилонами для каждого запроса, для обслуживающего потока.

Если вы намереваетесь только прочитать его, можно использовать тот, который указан в конфигурации:

config.get('pylons.app_globals') or config.get('pylons.g')
...