mirror of
https://github.com/mperham/sidekiq.git
synced 2022-11-09 13:52:34 -05:00
27 lines
571 B
Ruby
27 lines
571 B
Ruby
|
|
||
|
require 'sidekiq/util'
|
||
|
require 'sidekiq/manager'
|
||
|
require 'sidekiq/scheduled'
|
||
|
|
||
|
module Sidekiq
|
||
|
class Launcher
|
||
|
attr_reader :manager, :poller, :options
|
||
|
def initialize(options)
|
||
|
@options = options
|
||
|
@manager = Sidekiq::Manager.new(options)
|
||
|
@poller = Sidekiq::Scheduled::Poller.new
|
||
|
end
|
||
|
|
||
|
def run
|
||
|
manager.async.start
|
||
|
poller.async.poll(true)
|
||
|
end
|
||
|
|
||
|
def stop
|
||
|
poller.async.terminate if poller.alive?
|
||
|
manager.async.stop(:shutdown => true, :timeout => options[:timeout])
|
||
|
manager.wait(:shutdown)
|
||
|
end
|
||
|
end
|
||
|
end
|