我有一个后端 Rails 服务器Sidekiq
,它用作 API 服务器。该应用程序的工作原理如下:
我的 Rails 服务器同时接收来自传入 API 客户端的许多请求。
对于这些请求中的每一个,Rails 服务器都会将作业分配给 Sidekiq 服务器。Sidekiq 服务器向外部 API(如 Facebook)发出请求以获取数据,并对其进行分析并将结果返回给 Rails 服务器。
例如,如果我从我的 API 客户端收到 10 个传入请求,对于每个请求,我需要向外部 API 服务器发出 10 个请求,获取数据并进行处理。
我的挑战是让我的应用程序同时响应传入的请求。也就是说,对于每个传入的请求,我的应用程序应该并行处理:调用外部 API、获取数据并返回结果。
现在,我知道 Puma 可以为 Rails 应用程序添加并发性,而 Sidekiq 是多线程的。
我的问题是:如果我已经拥有 Puma,我真的需要 Sidekiq 吗?同时使用 Puma 和 Sidekiq 有什么好处?
特别是,使用 Puma,我只需从我的 Rails 应用程序调用我的外部 API 调用、数据处理等,它们将自动并发。