ソースコードを読んだ後、非同期SQLデータベース操作のトルネードサポートを望んでいました。
http://www.tornadoweb.org/documentation/_modules/tornado/database.html#Connection
ため息、彼らはバージョンをブロックしています。ここにいくつかの選択肢があります。
プランA:コールバックを使用してreuslt.sorryを返すことを除いて、mysqldbモジュールに似たAPIのセットを見つけます。APIが非ブロッキングmysql操作を処理できる例を示すものは見つかりませんでした。
プランB:ブロックバージョンを使用します。tornadoの作成者が開発者にブロックバージョンを使用するよう提案し、SQLクエリを極端に最適化してブロック期間を短縮することを聞きました。
私の場合:サーバーはピーク時に毎秒2kのリクエストを処理する必要があり、それらのほとんどはデータベースからのクエリと更新が必要です。すべての操作に10ms、10ms * 2kがかかることをお勧めします。これは、マルチスレッドプログラミングでは悪夢です。少なくとも、より多くの平均応答時間でより多くの接続を確立できます。
たぶん私はここでいくつかのポイントを逃しました、私はバックエンド開発の経験があまりありません。しかし、フレームワークが非ブロッキングである間、ブロッキングioapiを使用することはまだ悪い考えだと思います。
プランC:MySqlを削除してmongoDBを使用します。mongoDBにはasyncmongoという名前の非同期Python実装APIがあると聞きましたが、mongoDBを学習し、mongoDBをビジネスの選択肢として採用するリスクはわかりません。