在加载了许多光纤的所有数据之后停止均匀机器

时间:2012-08-09 01:29:21

标签: ruby eventmachine fibers

我尝试使用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但这对我来说比较慢。

由于

1 个答案:

答案 0 :(得分:1)

使用em-http-requestmulti-http interface提供所有请求完成后的回叫。第二个链接中提供的示例几乎完全符合您的要求。