【问题标题】:flask apscheduler start once but run many timesflask apscheduler 启动一次但运行多次
【发布时间】:2019-02-16 14:23:26
【问题描述】:

我用

from gevent import monkey
monkey.patch_all()

并使用 apscheduler.BackgroundScheduler()
使用 gunicorn 运行烧瓶:

gunicorn -w 4 -b 0.0.0.0:9999 -k gevent main:app --preload

cronjob 在 main.py 中启动,它启动一次,但运行 4 次。 如果我不使用 monkey.patch_all(),它会运行一次。为什么以及如何使用猴子补丁并运行一次 cronjob。

我使用 sse(server-send-event),所以我必须使用 gevent 和猴子补丁。

【问题讨论】:

    标签: flask gunicorn gevent apscheduler


    【解决方案1】:

    您应该尝试在您的环境中启动(或安装)看门狗。

    我个人不使用monkey,你可以从gevent试试:

    from gevent.pywsgi import WSGIServer

    if __name__ == "__main__": http_server = WSGIServer(("0.0.0.0", 5001), app).serve_forever()

    【讨论】:

    • 如果我不使用monkey,它会警告我:"MonkeyPatchWarning: Monkey-patching ssl after ssl has been imported 可能会导致错误,包括 Python3.6 上的 RecursionError ....." .而且我使用gunicorn运行服务器,不会遇到:'http_server = WSGIServer(("0.0.0.0", 5001), app).serve_forever()' .
    猜你喜欢
    • 2013-01-30
    • 1970-01-01
    • 1970-01-01
    • 2013-10-03
    • 2022-12-29
    • 1970-01-01
    • 2022-01-05
    • 1970-01-01
    • 2022-11-15
    相关资源
    最近更新 更多