2017-01-10 20 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を使用することですセッション間で確実に共有される方法です。あなたはSOのために、最後にはいくつかの優しいアドバイスを


を(audio.py C.F.)spectrogram exampleでこの技術を見ることができます。最小限のサンプルコードを含めることができれば、回答でコードを返す可能性が大幅に高まります。たとえば、ここにサンプルコードがあり、私が働くことができれば、その答えに完全な作業コードを投稿することができます。

+0

ありがとう@bigreddot –

関連する問題