监控文件更改 - Asyncio 和 Flask

GG_*_*hon 5 python flask python-3.x python-asyncio

我有一个 Flask 开发服务器,并希望包含一个文件监控功能,当受监控的文件发生更改时,该功能会向客户端发送通知。这类似于flask 的auto_reload 功能,但我并没有尝试重新加载服务器,只是(并使用Flask-Socketio)发送此通知。

为此,我曾考虑使用 asyncio(和 py3.5)和看门狗。看门狗示例需要运行一个独立的脚本,这似乎没有必要,因为 Flask 已经在运行。迷失在回调汤中,run_in_executor(由于某种原因阻塞)等。

关于如何优雅地实现此功能的任何指示?

小智 -1

watchdog observer在 Flask 应用程序中的单独线程中初始化并运行。在从 接收到的回调中watchdog,执行 asocketio.emit()将消息发送回您的客户端。