当我收到超过100个并发请求时,mysql.connect()
会产生一个“连接太多”错误。我使用的是一个托管数据库,它不会给我一个根用户来增加连接限制。下面是我需要替换的临时补丁。你知道吗
import flaskext.mysql
@app.route("/filter")
def filter_ep():
# FIXME: hot fix for "too many connections" error
conn = None
errs = 0
while not conn and errs < 100:
try:
conn = mysql.connect()
except Exception as e:
errs += 1
time.sleep(0.001)
cur = con.cursor()
# pull `results` from database
cur.close()
conn.close()
return results
当我尝试使用一个全局连接来执行相同的代码时,我得到了一个数据包无序错误,表明游标正在读取彼此的响应。你知道吗
我认为正确的解决方案是为查询创建某种任务队列,但不确定如何实现。你知道吗
这是我目前的解决方案,它仍然是坏的,但至少它不会消耗所有可用的连接,导致其他事情中断。你知道吗
相关问题 更多 >
编程相关推荐