module Sidetiq::API

Public: Sidetiq API methods.

Public Instance Methods

retries(worker = nil, &block) click to toggle source

Public: Recurring jobs currently scheduled for retries.

worker - A Sidekiq::Worker class or String of the class name (optional) block - An optional block that can be given to which each

Sidekiq::SortedEntry instance corresponding to a scheduled job will
be yielded.

Examples

Sidetiq.retries
# => [#<Sidekiq::SortedEntry>, ...]

Sidetiq.retries(MyWorker)
# => [#<Sidekiq::SortedEntry>, ...]

Sidetiq.retries("MyWorker")
# => [#<Sidekiq::SortedEntry>, ...]

Sidetiq.retries do |job|
  # do stuff ...
end
# => [#<Sidekiq::SortedEntry>, ...]

Sidetiq.retries(MyWorker) do |job|
  # do stuff ...
end
# => [#<Sidekiq::SortedEntry>, ...]

Sidetiq.retries("MyWorker") do |job|
  # do stuff ...
end
# => [#<Sidekiq::SortedEntry>, ...]

Yields each Sidekiq::SortedEntry instance. Returns an Array of Sidekiq::SortedEntry objects.

# File lib/sidetiq/api.rb, line 92
def retries(worker = nil, &block)
  filter_set(Sidekiq::RetrySet.new, worker, &block)
end
scheduled(worker = nil, &block) click to toggle source

Public: Currently scheduled recurring jobs.

worker - A Sidekiq::Worker class or String of the class name (optional) block - An optional block that can be given to which each

Sidekiq::SortedEntry instance corresponding to a scheduled job will
be yielded.

Examples

Sidetiq.scheduled
# => [#<Sidekiq::SortedEntry>, ...]

Sidetiq.scheduled(MyWorker)
# => [#<Sidekiq::SortedEntry>, ...]

Sidetiq.scheduled("MyWorker")
# => [#<Sidekiq::SortedEntry>, ...]

Sidetiq.scheduled do |job|
  # do stuff ...
end
# => [#<Sidekiq::SortedEntry>, ...]

Sidetiq.scheduled(MyWorker) do |job|
  # do stuff ...
end
# => [#<Sidekiq::SortedEntry>, ...]

Sidetiq.scheduled("MyWorker") do |job|
  # do stuff ...
end
# => [#<Sidekiq::SortedEntry>, ...]

Yields each Sidekiq::SortedEntry instance. Returns an Array of Sidekiq::SortedEntry objects.

# File lib/sidetiq/api.rb, line 53
def scheduled(worker = nil, &block)
  filter_set(Sidekiq::ScheduledSet.new, worker, &block)
end
schedules() click to toggle source

Public: Returns a Hash of Sidetiq::Schedule instances.

# File lib/sidetiq/api.rb, line 14
def schedules
  workers.map(&:schedule)
end
workers() click to toggle source

Public: Returns an Array of workers including Sidetiq::Schedulable. Excludes classes which don't define a perform method.

# File lib/sidetiq/api.rb, line 7
def workers
  Sidetiq::Schedulable.subclasses(true).select do |klass|
    klass.method_defined?(:perform)
  end
end

Private Instance Methods

filter_set(set, worker, &block) click to toggle source
# File lib/sidetiq/api.rb, line 98
def filter_set(set, worker, &block)
  worker = worker.constantize if worker.kind_of?(String)

  jobs = set.select do |job|
    klass = job.klass.constantize
    ret = klass.include?(Schedulable)
    ret = ret && klass == worker if worker
    ret
  end

  jobs.each(&block) if block_given?

  jobs
end