我正在开发一款需要处理10k +消息的移动聊天应用。 我想通过从龙卷风发送邮件请求到django rest来将每条消息保存到数据库。 我不知道哪个是写我的帖子请求的最好方法,不要放慢服务器的速度。
这是我的功能:
{{1}}
谢谢!
答案 0 :(得分:2)
Tornado是一个异步服务器,所以你也应该以异步方式发送该post请求。 urllib2
将阻止整个工作人员等待响应,该工作人员在发布完成之前不会接受任何其他请求。你应该使用龙卷风的httpclient
:
request = httpclient.HTTPRequest(endpoint, body=json.dumps(data), method="POST", headers={"content-type": "application/json"})
response = yield http_client.fetch(request)
print response
所有代码都应该在coroutine中。您还可以使用AsyncHTTPClient,在请求完成时调用您的回调,而不是为此创建正确的协程。