Flask-SocketIO中的后台任务

问题描述 投票:0回答:1

我有一个很直接的问题,但我没有找到一个很直接的答案。什么时候我应该使用start_background_task()而不是 "正常 "地启动一个Python线程?Flask-SocketIO文档中写道:"这个函数返回一个与Python线程兼容的对象。

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

关于是否有必要使用这个方法,而不是按照初始化和启动一个线程,它并没有说太多。threading 模块。

python multithreading flask flask-socketio
1个回答
1
投票

原因是 start_background_task() 存在的问题是,根据你使用的web服务器,线程模型会发生变化。例如,如果你使用的是eventlet或gevent,那么后台任务需要以greenlet的形式启动,而不是以 Thread 例子。

如果你使用 start_background_task() 你将被保证使用与你的环境兼容的任务对象。

© www.soinside.com 2019 - 2024. All rights reserved.