I recently interfaced one of my xmpp4r bots with the Xeriom Networks control panel. I’d planned to write a post about how easy it is, but RubyPond beat me to it. I can, however, offer one piece of advice that will save you from a subtle bug: periodically verify your database connections.
If your Rails process sits idle for a while – which is normal for something like a chat bot waiting for messages – MySQL (and other databases) will silently drop the connection. When the bot finally tries to use it, everything falls over.
The fix is simple. Spin up a background thread that pings the connection every half hour:
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
Drop this into your script and stale connections will be reconnected before they cause trouble.
Update: the Xeriom support bot is no longer running. It was fun, but not hugely useful in that context.