python 解决flask uwsgi 获取不到全局变量的问题
作者:请叫我西木同学
今天小编就为大家分享一篇python 解决flask uwsgi 获取不到全局变量的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
问题
在写flask,使用uwsgi启动的时候,涉及到多request线程访问同一个全局变量,发现不能获取到全局变量的值的修改,这在flask独立启动的时候是没有问题的。
伪代码
全局变量
@app.route('/request1/') def 函数1 修改全局变量 @app.route('/request2/') def 函数2 获取全局变量
严重怀疑是uwsgi的线程机制的问题,因为uwsgi是可以指定子进程的数目的,然而我设置子进程数目为1,之后,在处理函数1的时候是不能同时处理函数2的,怎么说,有点类似于javaweb中,uwsgi为了线程的并发,独立运行了多个进程,所以具有多个全局变量?
解决办法
想不改动源码直接从uwsgi上解决,搜索很久都没找到解决办法
找到一个别人从坑里爬起来的方法,就是用数据库等线程安全并且可以让多个线程公共访问的区域中存放数据,这样就能解决了。感觉数据库要用个sqlite才是最方便的。
以上这篇python 解决flask uwsgi 获取不到全局变量的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
- python wsgiref源码解析
- Python WSGI 规范简介
- 浅析Python 中的 WSGI 接口和 WSGI 服务的运行
- Docker构建python Flask+ nginx+uwsgi容器
- python web框架 django wsgi原理解析
- VPS CENTOS 上配置python,mysql,nginx,uwsgi,django的方法详解
- Python开发之Nginx+uWSGI+virtualenv多项目部署教程
- CentOS7部署Flask(Apache、mod_wsgi、Python36、venv)
- 详解如何在Apache中运行Python WSGI应用
- python 内置库wsgiref的使用(WSGI基础入门)