如何增加的Heroku 30秒H12超时(How to increase Heroku 30s h1

2019-07-20 07:55发布

我运行一个Rails应用程序,其中有从本地客户在C ++开发一个JSON Web服务调用(后命令与多JSON形式,上载流文件)

我已经看过在Heroku文档有关路由网 ,提上世纪30年代的Heroku限制HTTP连接,以及对长轮询替代,指的是工人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

Answer 1:

我一直在使用结束延迟工作 + 无业 ,现在我的工人DYNOS时,才需要运行。

同Heroku有每个应用程序的计划免费自由750小时,当你有低使用率,你也许可以继续使用它是免费的。



Answer 2:

该建议是:使用一个后台进程!

我读了你要避免它,但有没有办法解决它! 它是在网络应用最佳实践以最快的速度返回到客户端成为可能,因为它释放资源。 当你只有一个赛道,在Heroku的运行,并且有多个请求,他们将得到阻止你超时,没有用户能够访问你的页面。 您可以轻松拥有的服务拒绝的情况下,当你有这样的longrunning过程。

如果你不想这样做,因为成本的后台进程,看看免费增值: https://github.com/phoet/freemium



文章来源: How to increase Heroku 30s h12 timeout