Sha256: 74f1f82e0b40affcaeb9cef526bb38d85e344de8caf6e97f05c1efa697284f1e
Contents?: true
Size: 1.09 KB
Versions: 7
Compression:
Stored size: 1.09 KB
Contents
require 'resque' $HEROKU_WILL_TERMINATE_RESQUE = false Resque.class_eval do def self.heroku_will_terminate? !!$HEROKU_WILL_TERMINATE_RESQUE end end # before bumping resque dependency, check to ensure implementation has not changed # https://github.com/resque/resque/blame/v2.0.0/lib/resque/worker.rb#L406 # https://github.com/resque/resque/issues/1559#issuecomment-310908574 Resque::Worker.class_eval do def unregister_signal_handlers trap('TERM') do $HEROKU_WILL_TERMINATE_RESQUE = true trap('TERM') do log_with_severity :info, "[resque-heroku] received second term signal, throwing term exception" trap('TERM') do log_with_severity :info, "[resque-heroku] third or more time receiving TERM, ignoring" end raise Resque::TermException.new("SIGTERM") end log_with_severity :info, "[resque-heroku] received first term signal from heroku, ignoring" end trap('INT', 'DEFAULT') begin trap('QUIT', 'DEFAULT') trap('USR1', 'DEFAULT') trap('USR2', 'DEFAULT') rescue ArgumentError end end end
Version data entries
7 entries across 7 versions & 1 rubygems