相当于engine.restart()的瓶子

时间:2012-06-14 02:08:02

标签: python cherrypy gevent bottle

我正在尝试从Cherrypy转移到Bottle& GEVENT(服务器)。
我跑完之后:

application=bottle.default_app() #bottle
WSGIServer(('', port), application, spawn=None).serve_forever() #gevent

我想重新启动服务器,就像重新加载器重新加载服务器一样(但只有当我告诉服务器时)。 所以我想访问一个带有凭据请求的页面,只有在正确的身份验证后才会重新启动。

这是我在Cherrypy中的功能示例:

@expose
def reloadMe(self, u=None, p=None):
    if u=="username" and p=="password":
        engine.restart()
    raise HTTPRedirect('/')

更简单的是我问我如何重新加载这个脚本,以便我对源文件的编辑实现,但只有当我检索"重启"页面。
我实际上只需要相当于

的Bottlepy
engine.restart() #cherrypy

没有人知道怎么做吗?

1 个答案:

答案 0 :(得分:1)

您可以编写一个小的shell脚本来重启gevent wsgi服务器。

然后使用此代码,您可以调用脚本。

@get('/restartmyserver')
def handler():
    http_auth_data = bottle.request.auth() # returns a tuple (username,password) only basic auth.
    if http_auth_data[0] == user and http_auth_data[1] == password:
        os.system("your_shell_script_to_restart_gevent_wsgi")
    bottle.redirect('/')

如果您需要更多信息,请与我们联系。