Ruby 处理一千个异步请求的最佳方式是什么?



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

目前我需要处理大约一百个报价,但可能会增加到数千个。我正在查看EM,它目前运行十个线程,每个线程将运行十个异步请求,并将数据放入一些PubSub中以供稍后处理。

此外,我正在用HTTPgem测试Celluloid-IO

我走对了吗?尝试在GitHub中检查我正在尝试实现的smth,但失败了。

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

最流行的解决方案是EM同步,您可以使用EM::synchrony::Iterator进行作业调度和平衡。

请注意,您应该根据EM使用类似于"EM synchrony/EM http"的库,以与EM synchrony兼容。

你可以查看这篇博客文章了解更多见解。

最新更新