我是比較新的Django的&學習它逐位。 我訂閱了一個服務,它使用DLL來提供我需要的數據。
若要從服務中獲得所需的數據,我必須作出一些初始化;的量,代碼需要大約2-3秒(需要分派DLL,然後使一個初始化呼叫如下:)
全球可用的對象經常接取
from win32com.client import Dispatch
#pythoncom.CoInitialize()
zk = Dispatch("easyconnect.serverside")
print(zk.cmdInit(MY_ID, MY_PASS, SERVER_IP))
我需要的ZK對象是全球可用,向所有其它模塊,使得我不必非常模糊地執行init,並加快了數據訪問過程。
我試圖Django的緩存框架,這有助於緩存整個網站或網頁,但我覺得這不是我想要的。另外,將zk放入緩存中會返回一個錯誤,指出它不能放入緩存中。
有哪些替代方案來解決我的問題呢?
將'Dispatch'對象加載到'_setup'中會更簡單嗎? –
@JF多數民衆贊成我前面所做的,但問題是調度對象定義'initCmd'這就需要偷懶了'LazyObject'工作在默認的'__init__'(當然上面的代碼可以得到改善,但在這就是我只有時刻在我看來) –