【问题标题】:rails API gets timeoutrails API 超时
【发布时间】:2016-01-02 07:29:26
【问题描述】:

我的 Rails API 没有使用 ActiveResource::Base 类作为模型。问题是我的 API 调用另一个 rails 应用程序来将数据存储到 oracle DB。这个过程需要更长的时间,因此我的 API 会超时,但另一个 rails 应用程序上的进程仍在运行。我不能使用ActiveResource::Baseself.timeout 方法来延长我的API 的时间限制。谁能建议如何解决这个问题?

编辑

class MyResources::MyModel
  include MyResource
  include ActiveModel::Serialization

  attribute :id
  attribute :name
end

这是我的模型。我不是从ActiveResource::Base 继承的。 MyResouce 是我的自定义库。

【问题讨论】:

    标签: ruby-on-rails ruby api timeout


    【解决方案1】:

    你有几个选择:

    1. 将工作卸载到后台进程。如果您的应用在处理请求时正在执行繁重的处理,您可能希望将该工作传递给不会阻止请求本身的进程。例如,试试Sidekiq
    2. 设置调用其他 Rails 应用的超时时间。大多数 http 库都支持这一点。

    【讨论】:

    • 由于我没有使用ActiveResource::Base所以我没有timeout的方法。如果您可以命名具有相同功能的其他库,那就太好了。
    • 用我的模型示例编辑了问题。卸载的第一个选项不起作用,因为完成过程后我们无法获得成功状态(HTTP 状态代码即 200 )。
    猜你喜欢
    • 2020-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-28
    • 2013-01-05
    相关资源
    最近更新 更多