为了账号安全,请及时绑定邮箱和手机立即绑定

greenlet.error:无法切换到不同的线程

greenlet.error:无法切换到不同的线程

墨色风雨 2023-06-20 10:29:11
我有一个 Flask 应用程序,在尝试将 Flask 与faust集成时出现此错误。app.pyimport mode.loop.eventletimport loggingimport logging.configimport jsonfrom flask import Flaskfrom elasticapm.contrib.flask import ElasticAPMdef create_app():    app = Flask(__name__)    configure_apm(app)    configure_logging()    register_blueprints(app)    register_commands(app)    return appmain.pyfrom flask import jsonifyfrom litmus.app import create_appfrom intercepter import Intercepterapp = create_app()app.wsgi_app = Intercepter(app.wsgi_app , app)@app.route('/status')def status():    return jsonify({'status': 'online'}), 200另一个控制器@api_blue_print.route('/v1/analyse', methods=['POST'])def analyse():    analyse_with_historic_data.send(value=[somedata])    return jsonify({'message': 'Enqueued'}), 201analyse_with_historic_data.py@app.agent(analysis_topic)async def analyse_with_historic_data(self, stream):    async for op in stream:        entity_log = EntityLog.where('id', op.entity_log_id).first()我试图通过 monkey.patch_all 解决这个问题,但它也没有解决,给出了另一个无法释放锁的堆栈跟踪。
查看完整描述

2 回答

?
慕桂英4014372

TA贡献1871条经验 获得超13个赞

当我尝试使用 Pycharm 调试烧瓶应用程序时,类似的事情发生在我身上。

为了最终解决我的问题,我最终做的是在 Pycharm 中启用 gevent 兼容性:
文件 -> 设置 -> 构建、执行、部署 -> Python 调试器 -> Gevent 兼容


查看完整回答
反对 回复 2023-06-20
?
慕田峪7331174

TA贡献1828条经验 获得超13个赞

如果之前的答案没有帮助,请在所有导入之前粘贴以下内容:


from gevent import monkey

monkey.patch_all()

查看完整回答
反对 回复 2023-06-20
  • 2 回答
  • 0 关注
  • 264 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信