首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有多个工作进程的gunicorn中的变量访问

具有多个工作进程的gunicorn中的变量访问
EN

Stack Overflow用户
提问于 2014-05-14 19:18:58
回答 1查看 1.4K关注 0票数 3

有没有可能让多个工作者运行Gunicorn,并让他们以有序的方式访问一些全局变量,即不会遇到竞态条件的问题?

EN

回答 1

Stack Overflow用户

发布于 2014-09-06 18:35:14

假设全局变量是指将它们保存在内存或磁盘上的另一个进程,是的,我认为是这样的。我没有检查过Gunicorn的源代码,但基于我在一些旧代码中遇到的一个问题,几个用户从遗留的MyISAM表中检索相同的键,递增它并使用它创建一个新条目,假设它对于创建新记录是唯一的。结果是偶尔(在流量非常大的情况下)会创建一条记录(最新的记录覆盖旧的记录,都使用相同的增量键)。这个问题在硬件升级期间从未被发现,当时我将网站的gunicorn工作人员减少到一个,这就是我首先探索这个可能的原因的原因。

现在通常,减少工作进程会降低性能,最好用事务来处理这些问题(如果您使用ACID RDBMS,与MyISAM不同)。同样的问题应该出现在Redis和类似的商店中。

这对于文件和套接字也不是问题,因为据我所知,操作系统会阻止其他进程(甚至是子进程)访问打开的文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23653170

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档