rescue_from ActionController::RoutingError, with: :not_found
rescue_from ActiveRecord::RecordNotFound, with: :not_found
rescue_from ActionController::InvalidAuthenticityToken, with: :unprocessable_entity
+ rescue_from Rack::Timeout::RequestExpiryError, Rack::Timeout::RequestTimeoutError, with: :request_timeout
before_action :store_current_location, except: :raise_not_found, unless: :devise_controller?
before_action :set_locale
end
end
+ def request_timeout
+ respond_to do |format|
+ format.any { head 503 }
+ format.html { render 'errors/503', layout: 'error', status: 503 }
+ end
+ end
+
def current_account
@current_account ||= current_user.try(:account)
end
--- /dev/null
+- content_for :page_title do
+ Request timeout
+
+- content_for :content do
+ It took too long to process your request. This might be a temporary server issue
+Rack::Timeout::Logger.disable
+Rack::Timeout.service_timeout = false
+
if Rails.env.production?
Rack::Timeout.service_timeout = 90
- Rack::Timeout::Logger.disable
end