module Seppuqu
Constants
- VERSION
Public Class Methods
current_release_version()
click to toggle source
# File lib/seppuqu.rb, line 11 def self.current_release_version @current_release_version ||= get_release_version end
get_release_version()
click to toggle source
# File lib/seppuqu.rb, line 7 def self.get_release_version File.expand_path(__FILE__).split('/').last end
install()
click to toggle source
# File lib/seppuqu.rb, line 5 def install Sidekiq.class_exec{ def self.get_release_version File.expand_path(__FILE__).split('/').last end def self.current_release_version @current_release_version ||= get_release_version end def self.latest_release_version Sidekiq.redis do |conn| conn.get("release_version") || -1 end.to_i end } Sidekiq::Middleware.class_exec{ Object.const_set("VersionEnforcerMiddleware", Class.new{ def call(worker, msg, queue) lrv, crv = Sidekiq.latest_release_version, Sidekiq.current_release_version if lrv <= crv yield elsif Sidekiq.logger.info "My version (#{crv}) mismatches latest version (#{lrv}). Shutting down..." Thread.main.raise Interrupt end end }) } Sidekiq.configure_server do |config| config.server_middleware do |chain| chain.add Sidekiq::Middleware::VersionEnforcerMiddleware end end end
latest_release_version()
click to toggle source
# File lib/seppuqu.rb, line 15 def self.latest_release_version Sidekiq.redis do |conn| conn.get("release_version") || -1 end.to_i end
update_release_version()
click to toggle source
# File lib/seppuqu.rb, line 44 def update_release_version Sidekiq.redis {|c| c.set "release_version", Sidekiq.current_release_version } end
Public Instance Methods
call(worker, msg, queue) { || ... }
click to toggle source
# File lib/seppuqu.rb, line 24 def call(worker, msg, queue) lrv, crv = Sidekiq.latest_release_version, Sidekiq.current_release_version if lrv <= crv yield elsif Sidekiq.logger.info "My version (#{crv}) mismatches latest version (#{lrv}). Shutting down..." Thread.main.raise Interrupt end end
Private Instance Methods
install()
click to toggle source
# File lib/seppuqu.rb, line 5 def install Sidekiq.class_exec{ def self.get_release_version File.expand_path(__FILE__).split('/').last end def self.current_release_version @current_release_version ||= get_release_version end def self.latest_release_version Sidekiq.redis do |conn| conn.get("release_version") || -1 end.to_i end } Sidekiq::Middleware.class_exec{ Object.const_set("VersionEnforcerMiddleware", Class.new{ def call(worker, msg, queue) lrv, crv = Sidekiq.latest_release_version, Sidekiq.current_release_version if lrv <= crv yield elsif Sidekiq.logger.info "My version (#{crv}) mismatches latest version (#{lrv}). Shutting down..." Thread.main.raise Interrupt end end }) } Sidekiq.configure_server do |config| config.server_middleware do |chain| chain.add Sidekiq::Middleware::VersionEnforcerMiddleware end end end
update_release_version()
click to toggle source
# File lib/seppuqu.rb, line 44 def update_release_version Sidekiq.redis {|c| c.set "release_version", Sidekiq.current_release_version } end