2011-01-19 23 views
4

我想创建一个在我的挂钩环境的后台运行的进程,不受客户端请求的限制,可以访问对象的挂钩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'])`没有。也许我错误地使用了它。 – Hollister 2012-10-29 03:38:46

+0

我的解决方案更新版本的塔。 – stalkerg 2015-06-03 06:24:45

3

您需要注册app_globals(在挂架每个请求app_globals registerd):

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