2

我有一个简单的Uvicorn应用程序(使用FastAPI 构建)。在开发中,uvicorn server:app --reload. 该--reload参数表示将启动两个线程,一个与服务器有关,一个用于监视文件更改-当检测到文件更改时,重新启动与服务器的线程。

到目前为止没有什么特别的。这在 Flask、Django 和其他开发服务器中也很常见。问题是,我想pyngrok在启动开发服务器时打开一个隧道,并且我希望该隧道与这两个线程的父级一样长。也就是说,当检测到文件更改并重新启动开发服务器时,我希望重新启动隧道(因为ngrok这样会导致生成新的公共 URL 并中断现有连接)。

使用 Flask 和 Django,这相对容易实现。例如,使用 Flask 我只是简单地做os.environ.get("WERKZEUG_RUN_MAIN") != "true",使用 Django 我类似地评估RUN_MAIN环境变量,并且在任何一种情况下,我只在这些设置为时实例化隧道true。我找不到与 Uvicorn 一起使用的类似变量。任何人都可以在这里帮忙吗?

4

0 回答 0