异步连接失败momoko

问题描述:

我使用tornadoweb + momoko制作小型web应用程序。昨天,我已经“阿帕奇分公司”测试我的应用程序,我得到了以下错误:异步连接失败momoko

ERROR:root:Cannot send error response after headers written 
ERROR:root:Uncaught exception POST /url/is/here/ (127.0.0.1) 
HTTPRequest(protocol='http', host='localhost:8888', method='POST', uri='/url/is/here/', version='HTTP/1.1', remote_ip='127.0.0.1', body='some_data_here', headers={'Content-Length': '96', 'Connection': 'close', 'Content-Type': 'application/x-www-form-urlencoded', 'Host': 'localhost:8888', 'Accept-Encoding': 'gzip'}) 
Traceback (most recent call last): 
    File "/usr/lib/python2.7/site-packages/tornado/web.py", line 1021, in _stack_context_handle_exception 
    raise_exc_info((type, value, traceback)) 
    File "/usr/lib/python2.7/site-packages/tornado/stack_context.py", line 259, in _nested 
    yield vars 
    File "/usr/lib/python2.7/site-packages/tornado/stack_context.py", line 229, in wrapped 
    callback(*args, **kwargs) 
    File "/usr/lib/python2.7/site-packages/momoko/pools.py", line 313, in _io_callback 
    state = self._conn.poll() 
OperationalError: asynchronous connection failed 

,当我问这是下面显示TestWay处理此消息显示:

class TestWay(BaseHandler): 

    @property 
    def db(self): 
     if not hasattr(self.application, 'db'): 
      self.application.db = momoko.AsyncClient({ 
       'host': 'localhost', 
       'database': 'database_name', 
       'user': 'user_name', 
       'password': 'password_here', 
       'min_conn': 1, 
       'max_conn': 5, 
       'cleanup_timeout': 10 
      }) 
     return self.application.db 

    @web.asynchronous 
    @gen.engine 
    def post(self, *args, **kwargs): 
     self.db.execute(
      "SELECT key FROM table WHERE id = %s AND deleted = false", 
      (self.get_argument('id', 1),), 
      callback = (yield gen.Callback('callback_name')) 
     ) 

     cursor = yield gen.Wait('callback_name') 

     if cursor is not None: 
      result = cursor.fetchall() 
      if len(result) != 0 and len(result[0]) != 0: 
       response = result[0][0] 
     else: 
      response = u'some message' 
     self.write(response) 
     self.finish() 

我用从文件http://momoko.61924.nl/examples.html

这是因为momoko试图在postgresql.conf中打开比max_connection更多的连接而造成的