如何使用EventMachine进行异步Thrift通信?

时间:2012-09-17 04:55:39

标签: ruby-on-rails ruby asynchronous thrift eventmachine

目前我正在使用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可以解决这个问题。但是有几个关于将EventMachine用于我的Rails应用程序的问题:

  1. 据我所知,EventMachine就像是一个持续监听事件的服务器(或守护进程)。如果是这样,我应该在我的Rails应用程序中包含一个小型EM服务器吗?

  2. 我应该使用EventMachine.start_server :host, : port, :server_module做我想做的事吗?如果是, HTTP请求是我向EM服务器发送事件的方式吗?

  3. 如果我不正确地理解EM,请告诉我。

    感谢您的任何建议/更正。

0 个答案:

没有答案