热重载gevent WSGIServer

时间:2017-04-28 10:08:29

标签: python wsgi gevent

我已经在Flask中正好运行了gevent.WSGIServer个应用。为了获得顺畅的开发体验,我想启用热重载,例如如果python加载的python文件在磁盘上发生变化,我希望服务器重新加载。因为我使用SSE事件必然会阻止请求,所以我无法运行其他非常好的Flask内置调试服务器。在制作中我不想热重载。

我找到了@run_with_reloader装饰器,但是1)在代码注释中作者建议不要使用这个函数和2)当我的主py文件中的任何函数有这个装饰器热无论是否调用该函数,都始终启用-reload。

如何在开发期间热重新加载gevent.WSGIServer

2 个答案:

答案 0 :(得分:1)

我有相同的用例。我找到了这个,虽然它正在使用twisted:https://gist.github.com/ianschenck/977379a91154fe264897,但它仍在工作。类似的方法也适用于gevent。

答案 1 :(得分:0)

我认为这是最好的答案。为我工作。

import gevent.wsgi
import werkzeug.serving

@werkzeug.serving.run_with_reloader
def runServer():
    app.debug = True

    ws = gevent.wsgi.WSGIServer(('', 5000), app)
    ws.serve_forever()

附上原始链接: http://flask.pocoo.org/snippets/34/