Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 此事件已被另一个greenlet使用_Python_Mysql_Gunicorn_Greenlets - Fatal编程技术网

Python 此事件已被另一个greenlet使用

Python 此事件已被另一个greenlet使用,python,mysql,gunicorn,greenlets,Python,Mysql,Gunicorn,Greenlets,我将gunicorn 17.5与worker_class=“gevent”,workers=3一起使用,从gunicorn-c config.py my:app开始。我刚刚注意到我的日志中有以下错误 2014-04-01 04:48:49 [4297] [ERROR] Error handling request Traceback (most recent call last): File "/usr/lib/python2.6/site-packages/gunicorn/workers

我将gunicorn 17.5与
worker_class=“gevent”,workers=3
一起使用,从
gunicorn-c config.py my:app
开始。我刚刚注意到我的日志中有以下错误

2014-04-01 04:48:49 [4297] [ERROR] Error handling request
Traceback (most recent call last):
  File "/usr/lib/python2.6/site-packages/gunicorn/workers/async.py", line 45, in handle
    self.handle_request(listener, req, client, addr)
  File "/usr/lib/python2.6/site-packages/gunicorn/workers/ggevent.py", line 119, in handle_request
    super(GeventWorker, self).handle_request(*args)
  File "/usr/lib/python2.6/site-packages/gunicorn/workers/async.py", line 93, in handle_request
    respiter = self.wsgi(environ, resp.start_response)
  File "/usr/lib/python2.6/site-packages/beaker/middleware.py", line 155, in __call__
    return self.wrap_app(environ, session_start_response)
  [...]
  File "/usr/lib/python2.6/site-packages/mysql/connector/connection.py", line 1083, in cursor
    if not self.is_connected():
  File "/usr/lib/python2.6/site-packages/mysql/connector/connection.py", line 696, in is_connected
    self.cmd_ping()
  File "/usr/lib/python2.6/site-packages/mysql/connector/connection.py", line 665, in cmd_ping
    return self._handle_ok(self._send_cmd(ServerCmd.PING))
  File "/usr/lib/python2.6/site-packages/mysql/connector/connection.py", line 378, in _send_cmd
    return self._socket.recv()
  File "/usr/lib/python2.6/site-packages/mysql/connector/network.py", line 170, in recv_plain
    packet = self.sock.recv(1)
  File "/usr/lib64/python2.6/site-packages/gevent/socket.py", line 432, in recv
    wait_read(sock.fileno(), timeout=self.timeout, event=self._read_event)
  File "/usr/lib64/python2.6/site-packages/gevent/socket.py", line 165, in wait_read
    assert event.arg is None, 'This event is already used by another greenlet: %r' % (event.arg, )
AssertionError: This event is already used by another greenlet: (<Greenlet at 0x37ac190: <functools.partial object at 0x2578788>(<socket at 0x37ab9d0 fileno=14 sock=10.174.17.169:, ('173.228.6.207', 18614))>, timeout('timed out',))
我在网上看到,这表明猴子补丁是在线程导入后完成的。考虑到我提到的情况,你知道怎么会这样吗

如果有帮助的话:我的应用程序在启动时会打开一堆mysql连接,但我不能保证它们会被独占使用——也就是说,我没有一个带有acquire/release语义的连接池,它们只是被传入的客户端请求随机使用。有某种连接池会有帮助吗?如果是,如何确保它与gevent/greenlets配合良好

Exception KeyError: KeyError(36957072,) in <module 'threading' from '/usr/lib64/python2.6/threading.pyc'> ignored