2016-04-22 8 views
2

Ich habe einen Flaschendienst-Server und möchte eine Dateiüberwachungsfunktion einschließen, die dem Client eine Benachrichtigung sendet, wenn sich eine überwachte Datei geändert hat. Dies ist vergleichbar mit der Funktion auto_reload von flask, aber ich versuche nicht, den Server neu zu laden, sondern einfach (und mit Flask-Socketio) diese Benachrichtigung zu senden.Monitor Dateiänderung - Asyncio und Flask

Ich habe mit asyncio (und py3.5) und watchdog für dieses betrachtet. Für Watchdog-Beispiele ist ein eigenständiges Skript erforderlich, das nicht erforderlich ist, da Flask bereits ausgeführt wird. Verloren in einer Suppe von Rückrufen, run_in_executor (der aus irgendeinem Grund blockiert), usw.

Irgendwelche Hinweise darauf, wie diese Eigenschaft elegant erreicht werden kann?

Antwort

0

Initialisieren und starten Sie die watchdogobserver in einem separaten Thread in Ihrer Flask App. Führen Sie in dem Rückruf, der von watchdog empfangen wird, eine socketio.emit() aus, um eine Nachricht an Ihren Client zu senden.