2011-01-19 8 views
4

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

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

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

Спасибо заранее,
воли

ответ

1

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

Если вы только собираетесь прочитать, это безопасно использовать один в конфигурации:

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

Это работало для меня (пилоны 0.9.7), но 'pylons.app_globals._push_object (config ['pylons.app_globals'])' did not. Возможно, я использовал его неправильно. – Hollister

+0

Мое решение для более новой версии Pylons. – stalkerg

3

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

pylons.app_globals._push_object(config['pylons.app_globals']) 
+0

Это сработало для меня, фью. Принятый ответ не сделал. Благодарю. – jeffcook2150

Смежные вопросы