任务是几乎实时地处理报价单(延迟 1 秒)。
目前我需要处理大约一百个报价,但它可能会增加到数千个。我正在查看当前运行 10 个线程的 EM
,每个线程将运行 10 个异步请求并将数据放入某个 PubSub 以供以后处理。
此外,我正在使用 HTTP
gem 测试 Celluloid-IO
。
我走的路对吗?尝试在 GitHub 上查看我正在尝试实现但失败的 smth。
最佳答案
如果有大量并行请求,有时建议使用 Fibers而不是线程,因为它们触发速度更快,内存使用量更轻。
最受欢迎的解决方案是 EM-synchrony您可以使用 EM::Synchrony::Iterator 进行作业调度和平衡。
请注意,您应该使用符合 EM 的库,例如“em-synchrony/em-http”,以与 EM-synchrony 兼容.
可以查看this博文以获得更多见解。
关于Ruby 处理数千个异步请求的最佳方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17735160/