app/models/sidekiq/monitor/job.rb in sidekiq_monitor-0.0.4 vs app/models/sidekiq/monitor/job.rb in sidekiq_monitor-0.0.5
- old
+ new
@@ -4,24 +4,35 @@
attr_accessible :args, :class_name, :enqueued_at, :finished_at, :jid, :name, :queue, :result, :retry, :started_at, :status
serialize :args
serialize :result
- after_destroy :destroy_in_queue
+ after_destroy :delete_sidekiq_job
STATUSES = [
'queued',
'running',
'complete',
'failed'
]
- def destroy_in_queue
- return true unless status == 'queued'
+ def sidekiq_item
+ job = sidekiq_job
+ job ? job.item : nil
+ end
+
+ def sidekiq_job
sidekiq_queue = Sidekiq::Queue.new(queue)
sidekiq_queue.each do |job|
- return job.delete if job.jid == jid
+ return job if job.jid == jid
end
+ nil
+ end
+
+ def delete_sidekiq_job
+ return true unless status == 'queued'
+ job = sidekiq_job
+ job.delete if job
end
def self.destroy_by_queue(queue, conditions={})
jobs = where(conditions).where(status: 'queued', queue: queue).destroy_all
jids = jobs.map(&:jid)