目录
一.问题引入
tornado 是一个很好的异步非阻塞Python框架,有着优秀的大并发处理能力,使用中出现如下错误:
raise RuntimeError("Cannot write() after finish()")
二.代码
以下是涉及的代码:
thread_pool = ThreadPoolExecutor(2)
def go():
all = selected_customer_all()
return all
class R_SelectionCustomer(MyBackStargeRequestHandler):
@authenticated # 需要身份认证才能访问的处理器
#让一个请求一直保持 连接状态,而不是马上返回,直到一个主处理行为返回。
@gen.coroutine
def get(self):
print("我R_SelectionCustomer被访问了")
#self.get_argument()
all = yield thread_pool.submit(go)
self.write(str(RJ(data=all,total=len(all))))
三.解决
查阅资料:
当一个处理请求的行为被执行之后,这个请求会自动地结束。因为 Tornado 当中使用了 一种非阻塞式的 I/O 模型,所以你可以改变这种默认的处理行为——让一个