У меня в контроллере приложения есть вокруг_фильтр, чтобы заключить все действия в блок тайм-аута, чтобы действия не выполнялись до достижения 30-секундного предела Heroku.У меня также есть rescue_from Timeout :: Error, чтобы чисто спасти эти таймауты.К сожалению, rescue_from работает только иногда.
Работает нормально, если тайм-аут происходит во время выполнения в контроллерах, но не удается спасти, если тайм-аут случается внутри представления или помощника.
Ни Interrupt, ни SignalException, оба из которых наследует Timeout :: Error, также не спасаются корректно.Однако, спасение самого Exception действительно ли спасает корректно в представлениях и помощниках.
around_filter :timeout
rescue_from Timeout::Error, :with => :timeout_rescue
def timeout
Timeout::timeout(10){
yield
}
end
def timeout_rescue
# Rescued
end
Есть ли другой способ спасения Timeout :: Error, чтобы это работало?