Shutdown hook for Rails
Probably should just use the Ruby exit handler, which is a Kernel method:
$ irb
>> at_exit do
?> puts 'bye...'
>> end
=> #<Proc:0xb79a87e4@(irb):1>
>> exit
bye...
$
Within the context of a Rails Application, the best place to put such a file is in config/initializers
. In my app, I needed to Flush the Redis/Sidekiq queue whenever the development or test environments shut down. This works perfectly.
config/initializers/at_exit.rb
at_exit do
begin
puts 'Flushing Redis...'
Redis.new.flushall
rescue => e
puts "There was an #{e.to_s} while flushing redis..."
ensure
puts 'Done Flushing Redis!'
end
end unless Rails.env.production?