[英]Accessing app_globals from a separate thread
我想在我的 Pylons 項目中創建一個單獨的線程,用於通過 python 隊列 object 與之交互的繁重計算。 問題是我需要訪問 app_globals object。 當我嘗試這樣做時,我得到一個
TypeError: No object (name: app_globals) has been registered for this thread
我也嘗試以這種方式訪問 app_globals:
app_globals = config.get('pylons.app_globals')
self.cadfile = app_globals.pm.get_upload_path(session, 'cadfile')
但后來我得到另一個錯誤:
AttributeError: 'NoneType' object has no attribute 'pm'
我應該如何從單獨的線程訪問 app_globals?
可能您必須將 app_globals 作為啟動參數傳遞給線程,還是通過隊列傳遞? 我不舒爾,但我認為 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()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.