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
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.
- 1. EF.BulkInsert und Glimpse - nicht gut zusammen spielen
- 2. Modelform und Modellvalidierung zusammen spielen
- 3. Spielen Drupal und YUI gut zusammen?
- 4. Können Git und Subversion gut zusammen spielen?
- 5. Methodenketten + Vererbung spielen nicht gut zusammen?
- 6. Scala Wertklassen und Mockito Matchers nicht spielen zusammen
- 7. Firefox und TinyMCE 3.4.9 wird nicht nett zusammen spielen
- 8. Fluent Nhibernate und MySql spielen nicht gut zusammen
- 9. Rails Phantomjs, Poltergeist, und Capybara nicht gut zusammen spielen
- 10. Kann DokuWiki & jQuery zusammen spielen?
- 11. Angularjs + Zurb Foundation, spielen sie gut zusammen?
- 12. Wie kann ich Nock und Mocha gut zusammen spielen lassen?
- 13. Kann die Inversion der Kontrolle und RAII zusammen spielen?
- 14. Spielen Maven Multi-Modul und EAR gut zusammen?
- 15. Wie bekomme ich Groovy und JAXB zusammen zu spielen
- 16. Parallelisierung mit Joblib - Clarity
- 17. Kombinieren Tornado gen.coroutine und Joblib mem.cache Dekorateure
- 18. Bokeh Sitzung und Dokumentenabruf
- 19. For-Loop und die verzögerte Ausführung von LINQ spielen nicht gut zusammen
- 20. schluck-browserstack und schlucke-Gurken scheinen nicht gut zu spielen zusammen
- 21. Kann nicht für Android mit Facebook sdk und Google zusammen spielen in Unity 5.3.4
- 22. Gucumber & Subdomain-fu, um nett zusammen zu spielen
- 23. Bokeh: Bokeh-Plots automatisch aktualisieren
- 24. Dynamische Sounds spielen nicht nach zwei Spielen
- 25. Bokeh - Gestapelte und gruppierte Diagramme
- 26. Bokeh Figur wird nicht aktualisiert?
- 27. Bokeh Plot wird nicht aktualisiert
- 28. Bokeh Grundstücke in nicht QWebView
- 29. Bokeh ist nicht Datei regelmäßig
- 30. SDL.framework und Xcode spielen nicht nett
Dank @bigreddot –