Respond to timeouts with a server error code
This commit is contained in:
parent
51e0cf85b0
commit
e272a384ce
1 changed files with 6 additions and 3 deletions
|
@ -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
|
||||||
|
|
||||||
##
|
##
|
||||||
|
|
Loading…
Add table
Reference in a new issue