【发布时间】:2025-12-07 05:30:01
【问题描述】:
我有一个 Rails 应用程序,它可能需要很长时间来准备对某些查询的响应。 (主要是延迟将数据集渲染为 JSON 或 YAML。)该应用程序位于我无法更改其配置的代理后面,结果这些长时间运行的查询往往会因超时而被代理终止。分块没有帮助,因为在渲染完全完成之前没有任何东西可以分块。
Rails 中是否有任何支持或已经存在的方式来设置异步重复任务,该任务可以发送回 102 Processing 响应以保持代理满意,直到准备好完整的响应?
我真的宁愿不必实现分页语义。
我可以控制应用程序和客户端;这两个位都是我的代码。我没有控制代理,也没有应用程序的服务器。
非常欢迎任何建议!
【问题讨论】:
-
你看过Rails Streaming吗?它不支持 JSON 或 XML,但可能会以某种方式启发您。除此之外,我认为这听起来像是一个可以从后台作业和缓存中受益的问题。
-
不,我没有。我会看看那个。现在我正在使用
EventMachine和一些中间件。谢谢!
标签: ruby-on-rails ruby ruby-on-rails-4 proxy http-status-codes