現在、Thrift プロトコルを使用して、Rails アプリと HBase 間の同期通信を使用しています。
table = HBaseRb::Table.new ThriftClientFactory.create("client_name"), "table_name"
i = table.atomic_increment("row_key", "f:count_#{Time.now.getlocal.hour}")
これらのコードはモデル クラスに含まれているため、HBase に問題がある場合、サービスがブロックされる可能性があります。
これを解決するために、Thrift 通信を非同期 (ノンブロッキング I/O) にしたいと考えています。EventMachineはこの問題を解決できると思いました。しかし、Rails アプリで EventMachine を使用することについていくつか質問があります。
私の知る限り、EventMachine は、イベントを継続的にリッスンするサーバー (またはデーモン) のようなものです。もしそうなら、Rails アプリに小さな EM サーバーを含めるべきですか?
EventMachine.start_server :host, : port, :server_module
自分のしたいことをするために使うべきですか?その場合、HTTP リクエストはイベントを EM サーバーに送信する方法ですか?
EM を間違って理解している場合は、お知らせください。
アドバイス/修正をありがとう。