2017-01-10 2 views
0

Ich habe ein Bokeh-Skript, das die Daten mit einer Funktion aufruft, die mit @memory.cache Dekorateur von joblib umwickelt ist. Wenn ich das Skript als Python-Skript ausführe, ist die Funktion get_data schnell (zwischengespeichert). Wenn ich es unter Verwendung bokeh server --show code.py anrufe, scheint es, dass der Cache verloren geht und die Funktion neu bewertet wird, was den Datenabruf langsam macht. Wie kann ich Bokeh mit Joblib arbeiten?Bokeh und Joblib spielen nicht zusammen

Antwort

1

Es ist schwer zu sagen, ohne ein Beispiel zu geben, das das wiedergibt, was Sie sehen. Aber meine Vermutung ist, dass es etwas mit der Art und Weise zu tun hat, wie der Bokeh-Server-Code-Runner das App-Skript in jeder Sitzung ausführt.

Also, ich denke an ein paar mögliche Dinge zu versuchen.

Erstens gibt es ab 0.12.4 Beispiele und Anleitungen für embedding a Bokeh server as a library, z. in einem eigenständigen Python-Skript oder in einer Flask- oder Tornado-App. Die dortigen Beispiele verwenden auch FunctionHandler, was nicht exec ist. Meine Vermutung ist, dass dies mehr wie das Standard-Python-Ausführungsmodell für einzelne Prozesse/einzelne Namespaces ist und besser mit Ihrem Joblib-Decorator funktioniert.

, (Wenn Sie diesen Weg versuchen, und es funktioniert, bitte besser dokumentieren Verwendung irgendwie wissen, ist es wahrscheinlich wert lassen.)

Ansonsten eine weitere Option, die besser funktionieren könnte ist lifecycle hooks zu benutzen, um Ihre gewickelt Funktion zu schaffen, in Ein Weg, der sicher in allen Sitzungen geteilt wird. Sie können diese Technik in der spectrogram example sehen (vgl der audio.py)


schließlich nur ein paar sanfte Beratung für SO. Wenn Sie einen minimalen Beispielcode hinzufügen können, erhöht dies die Wahrscheinlichkeit, dass Sie Code in einer Antwort zurückerhalten können. Zum Beispiel, wenn es hier einen Beispielcode gäbe, mit dem ich versuchen könnte, zu arbeiten, dann wäre ich in der Lage, einen vollständigen Arbeitscode in der Antwort zu posten.

+0

Dank @bigreddot –

Verwandte Themen