簡體   English   中英

從單獨的線程訪問 app_globals

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM