Verify database connections in long-running idle Rails processes
I've interfaced one of my xmpp4r bots with the Xeriom Networks control panel. I had intended to write a post about it to show how easy it is, but I've been beaten to it. I can, however, offer one piece of advice that will stop the bot dying after a few hours of idling: periodically verify your database connections.
RAILS_DEFAULT_LOGGER.debug "Launching database connection verifier"
Thread.new do
loop do
sleep 1800 # Half an hour
RAILS_DEFAULT_LOGGER.debug "Verifying database connections"
ActiveRecord::Base.verify_active_connections!
end
end
Adding the above code to a script will stop database connections getting dropped (or, at least, will reconnect them if it happens).
To see it in action, add support@xeriom.net to your XMPP roster and have a chat. It's not hugely intelligent, but it does support a few useful commands.
Update: the support bot is no longer running. It was fun, but not hugely useful in this context.
Love me!
If you've found this article useful I'd appreciate beer and recommendations at Working With Rails.
curl -LO http://barkingiguana.com/2008/07/03/verify-database-connections-in-long-running-idle-rails-processes.html.orig
curl -LO http://barkingiguana.com/2008/07/03/verify-database-connections-in-long-running-idle-rails-processes.html.orig.asc
gpg --verify verify-database-connections-in-long-running-idle-rails-processes.html.orig{.asc,}
If you'd like to have a conversation about this post, email craig@barkingiguana.com. I don't bite.