Ruby处理千位异步请求的最佳方法是什么?

时间:2013-07-18 22:35:00

标签: ruby asynchronous eventmachine celluloid

任务是几乎实时处理报价滴答(1秒延迟)。

目前我需要处理大约100个引号,但它可能会增加到数千个。我正在查看当前运行10个线程的EM,每个线程将运行10个异步请求,并将数据放入某个PubSub以供以后处理。

此外,我正在使用Celluloid-IO gem测试HTTP

我是正确的吗?试图检查GitHub是否正在尝试实施但是失败了。

1 个答案:

答案 0 :(得分:3)

对于大量的并行请求,有时建议使用Fibers而不是Threads,因为它们更快启动,内存使用更轻。

最受欢迎的解决方案是EM-synchrony,您可以使用 EM :: Synchrony :: Iterator 进行作业调度和平衡。

请注意,您应该使用 EM - 像“ em-synchrony / em-http ”这样的库来与 EM-synchrony 兼容

您可以查看this博文来获取更多见解。