我正在使用 Rails 构建一个 API,请求进来,它们需要由运行在不同服务器上的一组工作人员执行(这些工作人员调用远程 API 并解析数据等)。我将使用 Sidekiq 或 Resque 来处理队列/处理。
我的问题是客户端需要在发生这种情况时等待,并且控制器需要在完成后将响应返回给客户端。我将如何在控制器中处理这个?我们正在使用 redis 后端,所以我正在考虑订阅 pub/sub 频道并等待工作人员发布状态消息。控制器将等待设定的时间段,然后如果没有及时收到消息,则向客户端返回“稍后再检查”响应。实现它的最佳方法是什么,或者有更好的解决方案吗?