【问题标题】:Stop evenmachine after all data loaded with many fibers在加载了许多光纤的所有数据后停止 evenmachine
【发布时间】:2012-08-09 01:29:20
【问题描述】:

我尝试使用 http 请求和 evenmachine 从 rest api 获取数据。为此使用em-net-http,纤维(ruby1.9.2p290)。我的伪代码如下所示:

  EM.run do
    Fiber.new do
      api_client.get_data_1
    end.resume

    Fiber.new do
      api_client.get_data_2
    end.resume

    ...

    Fiber.new do
      api_client.get_data_n
    end.resume

    EventMachine.stop
  end

问题:加载完所有数据后如何停止 EM?我计算了请求,但这是一种不好的做法。有什么模式可以做到这一点吗?我也使用了em-synchrony,但这对我来说比较慢。

谢谢

【问题讨论】:

  • 我怀疑您的代码正在按顺序执行请求。不知道 em 同步如何比顺序下载慢。请提供结果基准。

标签: ruby eventmachine fibers


【解决方案1】:

使用em-http-requestmulti-http interface,当所有请求完成时提供回调。第二个链接中提供的示例几乎可以满足您的需求。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多