使用pycassa与uwsgi时的问题

1 投票
1 回答
683 浏览
提问于 2025-04-16 14:43

我们在用pycassa和uwsgi,差不多有16个uwsgi进程。

奇怪的是,一个进程能拿到另一个进程查询的数据。例如,在A这个列族里,有一行数据,看起来像这样:

{行键, {'列_a': 1, '列_b': 2}}

进程1执行:get(行键, columns=['列_a', ])

进程2执行:get(行键, columns=['列_b', ])

但是,有时候,进程1却得到了列_b的值,进程2得到了列_a的值。

这是不是连接池的已知问题呢?

任何反馈都很感激。

1 个回答

2

为每个工作进程打开一个连接,使用 uwsgi.post_fork_hook 这个 API 函数。

import uwsgi

def myconnect(...):

global_connection = ...

uwsgi.post_fork_hook = myconnect

撰写回答