我正在运行一个 rails 应用程序,该应用程序具有来自用 c++ 开发的本地客户端的 json webservice 调用(具有多部分 json 表单的 post 命令,上传流文件)
我已经在 Heroku 文档中阅读了有关路由网格的信息,提到了 http 连接的 30 秒 Heroku 限制,以及关于长轮询的替代方案,指的是 worker dynos。
在通话期间,我处理 pdf 文档并在其中插入签名。这个 pdf 文档可以是 100kb 或 11Mb(或者更多)。
我知道我最终将不得不在后台进程上执行此操作,但我想在绝对必须之前避免这样做。
你知道增加这个超时的任何方法吗?
正如您在下面的代码中看到的那样,我在保存文档后正在处理我的文档(我在after_save
.
我希望客户端会在文档处理之前得到响应,但是我仍然在 heroku 端超时,在客户端出现错误。
这一切都适用于较小的文档,但对于只有 400kb 的 121 页 pdf 文档来说,它会爆炸......
最后,我的文件被上传,所以我只需要在发送超时响应之前将该响应继续发送到我的客户端应用程序......
有什么建议么?
我的错误:
at=error code=H12 desc="Request timeout" method=POST path=/documents host=fierce-beach-2720.herokuapp.com fwd="81.193.155.217/bl4-155-217.dsl.telepac.pt" dyno=web.1 queue=0ms wait=0ms connect=1ms service=32272ms status=503 bytes=0
我的控制器:
respond_to do |format|
if @document.save!
format.html { redirect_to root_path, :flash => { :success => 'Document was successfully created.'} }
format.json { render json: @document, status: :created, location: @document}
@document.document_process