python 解决flask uwsgi 获取不到全局变量的问题

yipeiwu_com5年前Python基础

问题

在写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设计】。

相关文章

Python面向对象思想与应用入门教程【类与对象】

本文实例讲述了Python面向对象思想与应用。分享给大家供大家参考,具体如下: 面向对象思想 1、面向对象的设计思想 面向对象是基于万物皆对象这个哲学观点。 2、面向对象和面向过程...

python实现simhash算法实例

python实现simhash算法实例

Simhash的算法简单的来说就是,从海量文本中快速搜索和已知simhash相差小于k位的simhash集合,这里每个文本都可以用一个simhash值来代表,一个simhash有64bi...

Python常见数据结构详解

本文详细罗列归纳了Python常见数据结构,并附以实例加以说明,相信对读者有一定的参考借鉴价值。 总体而言Python中常见的数据结构可以统称为容器(container)。而序列(如列表...

将matplotlib绘图嵌入pyqt的方法示例

我的终极整理,供参考 # coding:utf-8 import matplotlib # 使用 matplotlib中的FigureCanvas (在使用 Qt5 Backends...

python实现事件驱动

本文实例为大家分享了python实现事件驱动的具体代码,供大家参考,具体内容如下 EventManager事件管理类实现,大概就百来行代码左右。 # encoding: UTF-8...