使用pycassa与uwsgi时的问题
我们在用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