class Dynamiq::Job

Attributes

item[R]
message[R]
queue[R]

Public Class Methods

new(queue, message = nil) click to toggle source
# File lib/dynamiq/job.rb, line 5
def initialize(queue, message = nil)
  @queue = queue
  @message = message
  @item = message.is_a?(Hash) ? message : Sidekiq.load_json(message)      
end

Public Instance Methods

[](name) click to toggle source
# File lib/dynamiq/job.rb, line 67
def [](name)
  @item.__send__(:[], name)
end
acknowledge() click to toggle source
# File lib/dynamiq/job.rb, line 63
def acknowledge
  # nothing to do
end
args() click to toggle source
# File lib/dynamiq/job.rb, line 43
def args
  @item['args']
end
delete() click to toggle source
# File lib/dynamiq/job.rb, line 79
def delete
  deleted = Sidekiq.redis do |conn|
    rem_value = @value.dup
    rem_value.delete 'score'
    conn.zrem [:dynamic_queue, @queue].join(':'), rem_value.to_json
  end

  deleted ? 1 : 0
end
display_args() click to toggle source
# File lib/dynamiq/job.rb, line 29
def display_args
  # Unwrap known wrappers so they show up in a human-friendly manner in the Web UI
  @args ||= case klass
            when /\ASidekiq::Extensions::Delayed/
              safe_load(args[0], args) do |_, _, arg|
                arg
              end
            when "ActiveJob::QueueAdapters::SidekiqAdapter::JobWrapper"
              args[1..-1]
            else
              args
            end
end
display_class() click to toggle source
# File lib/dynamiq/job.rb, line 15
def display_class
  # Unwrap known wrappers so they show up in a human-friendly manner in the Web UI
  @klass ||= case klass
             when /\ASidekiq::Extensions::Delayed/
               safe_load(args[0], klass) do |target, method, _|
                 "#{target}.#{method}"
               end
             when "ActiveJob::QueueAdapters::SidekiqAdapter::JobWrapper"
               args[0]
             else
               klass
             end
end
enqueued_at() click to toggle source
# File lib/dynamiq/job.rb, line 55
def enqueued_at
  Time.at(@item['enqueued_at'] || 0).utc
end
jid() click to toggle source
# File lib/dynamiq/job.rb, line 47
def jid
  @item['jid']
end
klass() click to toggle source
# File lib/dynamiq/job.rb, line 11
def klass
  @item['class']
end
latency() click to toggle source
# File lib/dynamiq/job.rb, line 59
def latency
  Time.now.to_f - @item['enqueued_at']
end
queue_name() click to toggle source
# File lib/dynamiq/job.rb, line 71
def queue_name
  queue.name
end
requeue() click to toggle source
# File lib/dynamiq/job.rb, line 75
def requeue
  queue.requeue message
end
score() click to toggle source
# File lib/dynamiq/job.rb, line 51
def score
  @item['score']
end