Python Tornado BadYieldError用于timeou的POST请求

2024-07-04 16:41:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图为pythonTornado服务器编写一个post请求,该服务器在向客户机发送响应之前会休眠一秒钟。服务器每分钟必须处理许多post请求。由于BadYieldError: yielded unknown object <generator object get at 0x10d0b8870>,以下代码无法工作

@asynchronous
def post(self):
    response = yield IOLoop.instance().add_timeout(time.time() + 1, self._process)
    self.write(response)
    self.finish()

@gen.coroutine
def _process(self, callback=None):
    callback("{}")

服务器接收一个post请求,等待一秒钟,然后返回结果而不阻止其他请求。这是python2.7。如何解决这个问题?谢谢!在


Tags: self服务器客户机objecttimeresponsedefcallback
1条回答
网友
1楼 · 发布于 2024-07-04 16:41:02

要么使用回调,要么使用“屈服”,而不是两者兼而有之。所以你可以:

@asynchronous
def post(self):
    IOLoop.instance().add_timeout(time.time() + 1, self._process)

def _process(self):
    self.write("{}")
    self.finish()

或者,更好:

^{pr2}$

相关问题 更多 >

    热门问题