Class: Dynamiq::Job
- Inherits:
-
Object
- Object
- Dynamiq::Job
- Defined in:
- lib/dynamiq/job.rb
Instance Attribute Summary collapse
-
#item ⇒ Object
readonly
Returns the value of attribute item.
-
#message ⇒ Object
readonly
Returns the value of attribute message.
-
#queue ⇒ Object
readonly
Returns the value of attribute queue.
Instance Method Summary collapse
- #[](name) ⇒ Object
- #acknowledge ⇒ Object
- #args ⇒ Object
- #delete ⇒ Object
- #display_args ⇒ Object
- #display_class ⇒ Object
- #enqueued_at ⇒ Object
-
#initialize(queue, message = nil) ⇒ Job
constructor
A new instance of Job.
- #jid ⇒ Object
- #klass ⇒ Object
- #latency ⇒ Object
- #queue_name ⇒ Object
- #requeue ⇒ Object
- #score ⇒ Object
Constructor Details
#initialize(queue, message = nil) ⇒ Job
Returns a new instance of Job.
5 6 7 8 9 |
# File 'lib/dynamiq/job.rb', line 5 def initialize(queue, = nil) @queue = queue @message = @item = .is_a?(Hash) ? : Sidekiq.load_json() end |
Instance Attribute Details
#item ⇒ Object (readonly)
Returns the value of attribute item.
3 4 5 |
# File 'lib/dynamiq/job.rb', line 3 def item @item end |
#message ⇒ Object (readonly)
Returns the value of attribute message.
3 4 5 |
# File 'lib/dynamiq/job.rb', line 3 def @message end |
#queue ⇒ Object (readonly)
Returns the value of attribute queue.
3 4 5 |
# File 'lib/dynamiq/job.rb', line 3 def queue @queue end |
Instance Method Details
#[](name) ⇒ Object
67 68 69 |
# File 'lib/dynamiq/job.rb', line 67 def [](name) @item.__send__(:[], name) end |
#acknowledge ⇒ Object
63 64 65 |
# File 'lib/dynamiq/job.rb', line 63 def acknowledge # nothing to do end |
#args ⇒ Object
43 44 45 |
# File 'lib/dynamiq/job.rb', line 43 def args @item['args'] end |
#delete ⇒ Object
79 80 81 82 83 84 85 86 87 |
# 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 ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 40 41 |
# 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 ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 |
# 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 ⇒ Object
55 56 57 |
# File 'lib/dynamiq/job.rb', line 55 def enqueued_at Time.at(@item['enqueued_at'] || 0).utc end |
#jid ⇒ Object
47 48 49 |
# File 'lib/dynamiq/job.rb', line 47 def jid @item['jid'] end |
#klass ⇒ Object
11 12 13 |
# File 'lib/dynamiq/job.rb', line 11 def klass @item['class'] end |
#latency ⇒ Object
59 60 61 |
# File 'lib/dynamiq/job.rb', line 59 def latency Time.now.to_f - @item['enqueued_at'] end |
#queue_name ⇒ Object
71 72 73 |
# File 'lib/dynamiq/job.rb', line 71 def queue_name queue.name end |
#requeue ⇒ Object
75 76 77 |
# File 'lib/dynamiq/job.rb', line 75 def requeue queue.requeue end |
#score ⇒ Object
51 52 53 |
# File 'lib/dynamiq/job.rb', line 51 def score @item['score'] end |