Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@pglombardo
Forked from cpuguy83/sidekiqer.rb
Last active September 1, 2015 14:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pglombardo/6f3e6a78399787686571 to your computer and use it in GitHub Desktop.
Save pglombardo/6f3e6a78399787686571 to your computer and use it in GitHub Desktop.
Run Sidekiq in your main process
require 'sidekiq/cli'
require 'sidekiq/launcher'
module Sidekiqer
Sidekiq = ::Sidekiq.dup
module Sidekiq
CLI = ::Sidekiq::CLI.dup
Launcher = ::Sidekiq::Launcher.dup
::Sidekiq.send(:remove_const, :CLI)
::Sidekiq.send(:remove_const, :Launcher)
def self.server?
true
end
end
class << self
def sidekiq
@sidekiq
end
def kiq
if sidekiq_stopped?
default_opts = Sidekiq.options
cli = Sidekiqer::Sidekiq::CLI.instance
cli.parse(['-C', "config/sidekiq.yml"])
@sidekiq = Sidekiqer::Sidekiq::Launcher.new(::Sidekiq.options)
Sidekiq.options = default_opts
@sidekiq.async.run
trap(:INT) { stop }
trap(:TERM) { stop }
end
end
def stop
unless sidekiq_stopped?
sidekiq.stop
end
end
def status
if !sidekiq_stopped?
:up
else
:down
end
end
def sidekiq_stopped?
if sidekiq
!sidekiq.alive?
else
true
end
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment