Flask-Restx(/Flask-Restplus) 检测重载

Flask-Restx(/Flask-Restplus) detect reload

我的问题如下:在我的 Flask-Restx-Application 中,我创建了一个与 Flask-Application 的主线程异步运行的 Runner-Thread。

现在,当我像往常一样进行更改时,调试器仍然显示 * Detected change in 'XXXXX', reloading,这是一个有用的功能。问题是现在它卡住了,无法重新加载,因为必须手动停止 运行 线程。

如果可能的话,我仍然希望结合异步 Runner-Thread 使用自动重新加载。是否有可能通过触发事件或类似事件来 "detect" 这些重载?然后我可以手动关闭 Runner-Thread 并使用应用程序重新启动它。或者至少有可能不阻止重新加载以继续重新加载与 flask-restx 相关的东西?

在此先感谢您的帮助。

PS:我发现这里很难添加代码,因为我不知道flask-app的哪些部分是重要的。如果您需要任何代码来回答问题,我会将其添加到编辑中。

如果你想让重新加载器工作,你需要让你的线程成为守护线程。重新加载器会尝试杀死并重新启动程序(通过杀死主线程),但是因为你的另一个线程不是守护进程,它无法杀死程序并重新加载它。守护线程是一个只在主线程存在时才存在的线程,因此让你的另一个线程成为守护进程将解决你的问题。这是一个例子:

from threading import Thread

...

t = Thread(...)
t.daemon = True # this makes your thread a daemon thread
t.start()