创建一个可以访问app_globals的Pylons线程
我想在我的pylons环境中创建一个后台运行的进程,这个进程不受客户端请求的限制,并且可以访问pylons的app_globals
对象。这个进程的主要目的是检查客户端会话是否过期,并进行一些过期后的分析。
这样做可能吗?我试着在config/environment.py
文件中创建一个线程,但当我尝试访问app_globals
的属性时,出现了以下错误:
TypeError: No object (name: app_globals) has been registered for this thread
提前谢谢你,
Will
2 个回答
3
你需要在Pylons框架中注册应用的全局变量(app_globals),这些全局变量是按请求来注册的:
pylons.app_globals._push_object(config['pylons.app_globals'])
1
你想要访问的对象是由pylons为每个请求注册的StackedObjectProxy,这是为了服务线程使用的。
如果你只是想读取它,使用配置中的那个是安全的:
config.get('pylons.app_globals') or config.get('pylons.g')