2011-08-12 5 views
0

Python Queueオブジェクトを介してPylonsプロジェクトとやりとりしている重い計算用の別のスレッドを作成したいと思います。問題は、app_globalsオブジェクトに到達する必要があることです。別スレッドからのapp_globalsへのアクセス

AttributeError: 'NoneType' object has no attribute 'pm' 

どのようにすべきである:

app_globals = config.get('pylons.app_globals') 
self.cadfile = app_globals.pm.get_upload_path(session, 'cadfile') 

が、その後、私は別のエラーが表示されます。私はそれをしようとすると、私はまた、このようにapp_globalsにアクセスしようとしました

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

取得します私は別のスレッドからapp_globalsにアクセスしますか?

答えて

0

開始パラメータとしてスレッドにapp_globalsを渡すか、キューに渡す必要がありますか?私はshureしないが、私は考えてapp_globals実装threading.local

例:

class MyWorker(threading.Thread): 
    def __init__(self, local_app_globals, *args, **kwargs): 
     self.app_globals=local_app_globals 
     super(MyWorker, self).__init__(*args, **kwargs) 

    def run(): 
     #use self.app_globals as app_globals 

t=MyWorker(app_globals) 
t.start()