Skip to content

Instantly share code, notes, and snippets.

@eljojo
Created April 16, 2014 12:01
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 eljojo/10861794 to your computer and use it in GitHub Desktop.
Save eljojo/10861794 to your computer and use it in GitHub Desktop.
See if a Sidekiq job is queued or running
class DaWorker
include Sidekiq::Worker
def perform
sleep(10)
end
class << self
def queue_name
sidekiq_options_hash["queue"].to_s || "default"
end
def queued?(*args)
queue = Sidekiq::Queue.new(queue_name)
queue.any? do |job|
job.klass == self.name && job.args == args
end
end
def running?(*args)
workers = Sidekiq::Workers.new
workers.to_a.any? do |worker_name, tid, work|
payload = work["payload"]
next unless payload.present?
payload["queue"] == queue_name and payload["class"] == self.name && payload["args"] == args
end
end
def queued_or_running?(*args)
running?(*args) or queued?(*args)
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment