2013-05-29 43 views
5

Używam heroku do obsługi aplikacji Ruby on Rails wspierającej aplikację na iOS. Mam prośbę, która może trwać długo i muszę być w stanie złapać limit czasu, zanim moje żądanie zostanie zabite. Używam Timeout :: timeout (15), aby rzucić błąd i odpowiednio go obsłużyć. Działa to dobrze na moim lokalnym i widzę błąd jest zgłaszany i zalogowany. Kiedy uruchamiam ten sam kod na heroku, nie jest rejestrowany żaden błąd. Miałem ten sam problem, gdy próbowałem użyć klejnotu limitu czasu w szafie.Heroku Timeout :: timeout nie wyrzuca błędu

Czy ktoś inny ma problem z uzyskaniem limitu czasu na Heroku? Jestem na cedrze.

+0

tak mam dokładnie ten sam problem, bardzo denerwujące! – andy

Odpowiedz

4
# 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" 

Działa to dobrze na Heroku: http://young-gorge-7585.herokuapp.com