1

Tornado ドキュメントのすべての例は、Tornado を使用して非同期でさらに HTTP リクエストを作成する方法を示しています。

http_client = httpclient.AsyncHTTPClient()
http_client.fetch("http://www.google.com/", handle_request)

私のトルネードがデータベースからの応答(couchbaseのコマンドを取得)を待たずに次に送信されるようにしたいのですが。

他のバグをチェックして、 couchbase への非同期呼び出しが必要な理由を理解してください。

4

3 に答える 3

3

私の知る限り、Couchbase ドライバーは非同期ドライバーではないため、これは機能しません。db 呼び出しを同期化し、可能な限り高速になるように最適化します。

(恐ろしい) 別の方法は、couchbase のドライバーを取得し、gevent などでパッチを適用して、独自の非同期ドライバーを作成することです。これを行うことはお勧めしません。あなたが本当にこの道をたどりたいのなら、この男がMotorで何をしたかを見てください- 彼はmongoドライバーを非同期にしました。

于 2013-02-26T17:43:04.683 に答える
1

github の Tornado wikiとStackOverflowのこの同様の質問を参照してください。データベース呼び出しを同期するだけです。データベースまたはデータベースへの呼び出し/データベースドライバーがボトルネックである場合、トルネードがブロックされていなくても、Web サイトは高速になりません。ファイル I/O など、Web サイトのほとんどの部分にとって重要ではない他の Web サーバーやリソースのように、制御下にないリソースを要求する場合は、非同期呼び出しを行う方が理にかなっています。

于 2013-02-27T22:22:16.373 に答える