任务是几乎实时处理报价报价(1 秒延迟)。
目前我需要处理大约一百个报价,但可能会增加到数千个。我正在查看EM
当前要运行的十个线程,每个线程将运行十个异步请求并将数据放入一些 PubSub 以供以后处理。
我也在Celluloid-IO
用HTTP
gem 进行测试。
我走对了吗?试图检查 GitHub 是否有我正在尝试实现但失败的smth。
任务是几乎实时处理报价报价(1 秒延迟)。
目前我需要处理大约一百个报价,但可能会增加到数千个。我正在查看EM
当前要运行的十个线程,每个线程将运行十个异步请求并将数据放入一些 PubSub 以供以后处理。
我也在Celluloid-IO
用HTTP
gem 进行测试。
我走对了吗?试图检查 GitHub 是否有我正在尝试实现但失败的smth。
对于大量的并行请求,有时建议使用Fibers而不是 Threads,因为它们触发速度更快,内存使用量更轻。
最流行的解决方案是EM-synchrony,您可以使用EM::Synchrony::Iterator进行作业调度和平衡。
请注意,您应该使用相应的EM -libraries,例如“ em-synchrony/em-http ”,以便与EM-synchrony兼容。
您可以查看此博文以获取更多见解。