Respond to timeouts with a server error code

This commit is contained in:
Anton Khorev 2024-09-09 19:13:29 +03:00
parent 51e0cf85b0
commit e272a384ce

View file

@ -224,14 +224,17 @@ class ApplicationController < ActionController::Base
if e.is_a?(Timeout::Error) || if e.is_a?(Timeout::Error) ||
(e.is_a?(ActiveRecord::StatementInvalid) && e.message.include?("execution expired")) (e.is_a?(ActiveRecord::StatementInvalid) && e.message.include?("execution expired"))
ActiveRecord::Base.connection.raw_connection.cancel respond_to_timeout
render :action => "timeout"
else else
raise raise
end end
rescue Timeout::Error rescue Timeout::Error
respond_to_timeout
end
def respond_to_timeout
ActiveRecord::Base.connection.raw_connection.cancel ActiveRecord::Base.connection.raw_connection.cancel
render :action => "timeout" render :action => "timeout", :status => :gateway_timeout
end end
## ##