重启 Bottle 应用程序(以编程方式)

Restart Bottle app (programmatically)

如何以编程方式重新启动我的 Bottle 应用程序?

def error_handler(error):
    if error.message == "connection already closed":
        RESTART_BOTTLE_SERVER()  # This will reacquire connection

我建议您 运行 您的 Bottle 服务器作为 OS 后台的守护进程。您可以启动和停止服务器并使用简单的 python 代码来终止线程。 BottleDaemon 可能会为您完成这项工作。

from bottledaemon import daemon_run
from bottle import route

@route("/hello")
def hello():
  return "Hello World"

if __name__ == "__main__":
  daemon_run()

以上应用程序将在后台启动。这个顶级脚本可以很容易地用于start/stop后台进程:

jonathans-air:bottle-daemon jhood$ python bottledaemon/bottledaemon.py
usage: bottledaemon.py [-h] {start,stop}

现在您可以使用 bottledaemon.py 来启动或停止或重新启动您的应用程序,并从您的主 python 文件中调用它。

您可以使用this answer中描述的方法停止瓶子应用程序(线程)。