Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Heroku Timeout::超时未引发错误_Ruby On Rails_Heroku - Fatal编程技术网

Ruby on rails Heroku Timeout::超时未引发错误

Ruby on rails Heroku Timeout::超时未引发错误,ruby-on-rails,heroku,Ruby On Rails,Heroku,我正在使用heroku托管一个支持iOS应用程序的ruby on rails应用程序。我有一个可能运行很长时间的请求,我需要能够在我的请求被终止之前捕获超时。我使用Timeout::Timeout(15)抛出一个错误并适当地处理它。这在我的本地服务器上运行良好,我可以看到抛出并记录错误。当我在heroku上运行相同的代码时,不会记录任何错误。我在尝试使用rack timeout gem时遇到了同样的问题 还有人在Heroku上运行超时时遇到问题吗?我在雪松上。#app/controllers/i

我正在使用heroku托管一个支持iOS应用程序的ruby on rails应用程序。我有一个可能运行很长时间的请求,我需要能够在我的请求被终止之前捕获超时。我使用Timeout::Timeout(15)抛出一个错误并适当地处理它。这在我的本地服务器上运行良好,我可以看到抛出并记录错误。当我在heroku上运行相同的代码时,不会记录任何错误。我在尝试使用rack timeout gem时遇到了同样的问题

还有人在Heroku上运行超时时遇到问题吗?我在雪松上。

#app/controllers/index_controller.rb
# app/controllers/index_controller.rb
require 'timeout'
Class IndexController < ApplicationController
  def timeout
    begin
      status = Timeout::timeout(5) {
        sleep(6)
        render :text => "will never be rendered"
      rescue Timeout::Error
        render :text => "timeout handled"
      end
    end
  end
end

# config/routes.rb

match '/timeout' => "index#timeout"
需要“超时” 类索引控制器<应用程序控制器 def超时 开始 状态=超时::超时(5){ 睡眠(6) render:text=>“将永远不会被渲染” 救援超时::错误 呈现:text=>“已处理超时” 结束 结束 结束 结束 #config/routes.rb 匹配“/timeout”=>“索引#超时”

这在heroku上运行得很好:

看看Rack::Timeout的用法,它就是为此而设计的


是的,我遇到了完全相同的问题,非常烦人!我看到您有一个开放块
{
,但没有关闭?