Flask-SocketIO中的后台任务

时间:2020-06-15 15:22:42

标签: python multithreading flask flask-socketio

我有一个非常简单的问题,但是我没有找到一个非常简单的答案:我应该何时使用start_background_task()代替“正常”启动Python线程? Flask-SocketIO文档指出:

此函数返回与Python标准库中的Thread类兼容的对象。此函数已经调用了该对象上的start()方法。

threading模块的初始化和启动线程过程中,是否有必要使用此方法并没有太多说明。

1 个答案:

答案 0 :(得分:2)

存在start_background_task()的原因是,取决于使用哪种Web服务器,线程模型会发生变化。例如,如果您使用的是eventlet或gevent,则后台任务需要以greenlet(而不是Thread实例)的形式启动。

如果您使用start_background_task(),则可以保证将使用与您的环境兼容的任务对象。