skar
1
Hi,
I’ve got an activerecord query which takes longer than 100 seconds. I’m
using rails 2.2 with postgresql 8.3.
mentions an option called “statement_timeout” which when set aborts a
query which takes longer than x milli seconds.
How do I pass this option to AR so that it in turn passes this to
postgresql?
cheers,
skar.
–
The life so short, the craft so long to learn.
skar
2
You’ve probably already figured it out, but this looks workable:
See this page for some of the statement-related settings:
def setStatementTimeout milliseconds
query = “SET statement_timeout = #{milliseconds};”
ActiveRecord::Base.connection().execute query
end
skar
3
Another alternative would be to just wrap your long-running query in a
timeout, something like:
require ‘timeout’
…
begin
status = Timeout::timeout(60) do
# some long-running action …
end
rescue Timeout::Error => te
…
end
Jeff