Class: Sidekiq::Job

Inherits:
Object
  • Object
show all
Defined in:
lib/sidekiq/api.rb

Overview

Encapsulates a pending job within a Sidekiq queue or sorted set.

The job should be considered immutable but may be removed from the queue via Job#delete.

Direct Known Subclasses

SortedEntry

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(item, queue_name = nil) ⇒ Job

Returns a new instance of Job.



189
190
191
192
193
# File 'lib/sidekiq/api.rb', line 189

def initialize(item, queue_name=nil)
  @value = item
  @item = Sidekiq.load_json(item)
  @queue = queue_name || @item['queue']
end

Instance Attribute Details

#itemObject (readonly)

Returns the value of attribute item.



187
188
189
# File 'lib/sidekiq/api.rb', line 187

def item
  @item
end

Instance Method Details

#[](name) ⇒ Object



228
229
230
# File 'lib/sidekiq/api.rb', line 228

def [](name)
  @item.__send__(:[], name)
end

#argsObject



199
200
201
# File 'lib/sidekiq/api.rb', line 199

def args
  @item['args']
end

#deleteObject

Remove this job from the queue.



221
222
223
224
225
226
# File 'lib/sidekiq/api.rb', line 221

def delete
  count = Sidekiq.redis do |conn|
    conn.lrem("queue:#{@queue}", 1, @value)
  end
  count != 0
end

#enqueued_atObject



207
208
209
# File 'lib/sidekiq/api.rb', line 207

def enqueued_at
  Time.at(@item['enqueued_at'] || 0).utc
end

#jidObject



203
204
205
# File 'lib/sidekiq/api.rb', line 203

def jid
  @item['jid']
end

#klassObject



195
196
197
# File 'lib/sidekiq/api.rb', line 195

def klass
  @item['class']
end

#latencyObject



215
216
217
# File 'lib/sidekiq/api.rb', line 215

def latency
  Time.now.to_f - @item['enqueued_at']
end

#queueObject



211
212
213
# File 'lib/sidekiq/api.rb', line 211

def queue
  @queue
end