module Sidecloq

Sideloq provides a lightweight recurring job scheduler for sidekiq

Constants

VERSION

Public Class Methods

configure() { |options| ... } click to toggle source
# File lib/sidecloq.rb, line 38
def self.configure
  yield options
end
extract_schedule() click to toggle source
# File lib/sidecloq.rb, line 58
def self.extract_schedule
  # do our best to do this automatically

  # schedule handed to us
  return options[:schedule] if options[:schedule]

  # try for a file
  options[:schedule_file] ||= 'config/sidecloq.yml'

  if File.exist?(options[:schedule_file])
    return Schedule.from_yaml(options[:schedule_file])
  elsif defined?(Rails)
    # try rails-root-relative
    full_path = File.join(Rails.root, options[:schedule_file])
    if File.exist?(full_path)
      options[:schedule_file] = full_path
      return Schedule.from_yaml(options[:schedule_file])
    end
  end

  # return an empty schedule
  Schedule.new({})
end
install() click to toggle source
# File lib/sidecloq.rb, line 18
def self.install
  Sidekiq.configure_server do |config|
    config.on(:startup) do
      Sidecloq.startup
    end

    config.on(:shutdown) do
      Sidecloq.shutdown
    end
  end
end
options() click to toggle source
# File lib/sidecloq.rb, line 30
def self.options
  @options ||= {}
end
options=(opts) click to toggle source
# File lib/sidecloq.rb, line 34
def self.options=(opts)
  @options = opts
end
running?() click to toggle source
# File lib/sidecloq.rb, line 49
def self.running?
 !!@runner
end
shutdown() click to toggle source
# File lib/sidecloq.rb, line 53
def self.shutdown
  @runner.stop(options[:timeout] || 10) if @runner
  @runner = nil
end
startup() click to toggle source
# File lib/sidecloq.rb, line 42
def self.startup
  options[:schedule] ||= extract_schedule unless options[:scheduler]

  @runner = Runner.new(options)
  @runner.run
end