2

Thin は、非同期 IO を提供する EventMachine の上に構築されていることを理解しています。RoR や Sinatra などのラック フレームワークを使用していて、(特別なライブラリを使用せずに) DB 呼び出しを行った場合、メイン イベント ループはブロックされますか (Web サーバーとして Thin を使用している場合)。

ありがとう

4

1 に答える 1

1

はい、そうです。

標準の DB クライアントは、Ruby の TCPSocket の上に作成されます。これは、応答を待っている間、メイン スレッドをブロックします。

TCP 接続を EM::Connection に置き換える、パッチを適用したクライアントを使用する必要があります。それらのいくつかは、EventMachine ライブラリ自体に表示されます

于 2013-11-09T00:18:13.797 に答える