ruby-on-rails-3 - 轨道 3 : Return large amount of data to user via API

标签 ruby-on-rails-3 delayed-job

我的应用程序有一个 API,用户可以请求数据。有时,这些数据需要时间来处理,并且会破坏我的代码。

我需要一个解决方案,我正在考虑使用delayed_job,但我不确定它是如何工作的。如果用户提出请求,我需要给他一个答案。即使我在后台处理数据,调用仍然需要等待作业返回。

这个问题有什么解决办法吗?我不知道该怎么做。

谢谢

最佳答案

Heroku 有一个 30 second timeout ,这就是您的请求失败的原因(可能是您的 Heroku 日志中的 H12 或 H13)。

可以通过三种方法来解决这个问题。

  1. 通过发送空白数据保持连接打开。 您需要在前 30 秒内回复,此后每隔 55 秒回复一次。利用中间的时间来处理数据。发送空格不应影响浏览器读取响应的能力。

  2. 回调 让用户在初始请求中提供回调 URL。处理完数据后,请使用您的响应点击回调网址。

  3. 投票 根据 Codeglot 的建议,您可以向用户提供 key 。要检查他们的请求,他们可以使用该 key ping 您的服务器。

关于ruby-on-rails-3 - 轨道 3 : Return large amount of data to user via API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6486035/

相关文章:

ruby-on-rails - 在 652ms 内完成 200 OK (Views : 50. 9ms | ActiveRecord : 18. 3ms)

ruby-on-rails-3 - Arel 和 pgAdmin 从具有时间戳条件的同一查询返回不同的数据

ruby-on-rails - 循环非事件记录模型对象的属性

ruby-on-rails - 延迟作业是否作为守护进程运行?

mysql - 运行delayed_job时出现未知别名错误

ruby-on-rails-3 - MongoID,在多个文档中嵌入一个文档

ruby - 如何跟踪 paper_trail 中的自定义事件?

ruby-on-rails - delayed_job - 执行的代码不是最新的?

ruby-on-rails - 回形针背景个人资料图片上传到 s3 并进行部分处理

ruby-on-rails - 延迟作业不会开始使用 Capistrano