2011-08-12 2 views
0

파이썬 큐 객체를 통해 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 

A가 얻을 별도의 스레드에서 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()