2017-01-10 63 views
0

我有一個使用包含joblib的@memory.cache裝飾器的函數調用數據的Bokeh腳本。當我將腳本作爲python腳本運行時,get_data函數很快(緩存)。當我使用bokeh server --show code.py調用它時,它看起來像緩存丟失並且函數被重新評估,這使得數據檢索變得緩慢。如何使Bokeh與Joblib很好地協同工作?Bokeh和Joblib不會一起玩

回答

1

如果沒有能夠運行一個能夠再現你所看到的例子,那麼很難說。但我的猜測是,它與Bokeh服務器代碼運行器在每個會話中執行應用程序腳本的方式有關。

所以,我可以考慮一些可能的事情來嘗試。

首先,從0.12.4開始,有embedding a Bokeh server as a library的例子和指導,例如,在獨立的Python腳本中,或者在Flask或Tornado應用程序中。那裏的例子也都使用FunctionHandler,它不是exec。我的直覺是,這更像是標準的單進程/單命名空間python執行模型,並且可以更好地發揮您的joblib裝飾器的作用。

(如果您嘗試這條路線,和它的作品,請讓使用者知道在某種程度上,這可能是值得記錄要好。)

否則,可能會更好地工作就是用lifecycle hooks提供您的包裹功能的另一種選擇這是確保在會話中共享的一種方式。你終於可以看到spectrogram example這種技術(C.F.的audio.py


,只是一些溫和的建議這麼久。如果你可以包含一個最小的示例代碼,這大大增加了將代碼返回給答案的可能性。例如,如果在這裏有示例代碼可以嘗試工作,那麼我可以在答案中發佈完整的工作代碼。

+0

Thanks @bigreddot –