Class: Sidekiq::Job
- Inherits:
-
Object
- Object
- Sidekiq::Job
- 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
Instance Attribute Summary collapse
-
#item ⇒ Object
readonly
Returns the value of attribute item.
Instance Method Summary collapse
- #[](name) ⇒ Object
- #args ⇒ Object
- #created_at ⇒ Object
-
#delete ⇒ Object
Remove this job from the queue.
- #display_args ⇒ Object
- #display_class ⇒ Object
- #enqueued_at ⇒ Object
-
#initialize(item, queue_name = nil) ⇒ Job
constructor
A new instance of Job.
- #jid ⇒ Object
- #klass ⇒ Object
- #latency ⇒ Object
- #queue ⇒ Object
Constructor Details
Instance Attribute Details
#item ⇒ Object (readonly)
Returns the value of attribute item.
279 280 281 |
# File 'lib/sidekiq/api.rb', line 279 def item @item end |
Instance Method Details
#[](name) ⇒ Object
364 365 366 |
# File 'lib/sidekiq/api.rb', line 364 def [](name) @item[name] end |
#args ⇒ Object
331 332 333 |
# File 'lib/sidekiq/api.rb', line 331 def args @item['args'] end |
#created_at ⇒ Object
343 344 345 |
# File 'lib/sidekiq/api.rb', line 343 def created_at Time.at(@item['created_at'] || @item['enqueued_at'] || 0).utc end |
#delete ⇒ Object
Remove this job from the queue.
357 358 359 360 361 362 |
# File 'lib/sidekiq/api.rb', line 357 def delete count = Sidekiq.redis do |conn| conn.lrem("queue:#{@queue}", 1, @value) end count != 0 end |
#display_args ⇒ Object
311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 |
# File 'lib/sidekiq/api.rb', line 311 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" job_args = @item['wrapped'] ? args[0]["arguments"] : [] if 'ActionMailer::DeliveryJob' == (@item['wrapped'] || args[0]) # remove MailerClass, mailer_method and 'deliver_now' job_args.drop(3) else job_args end else args end end |
#display_class ⇒ Object
291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 |
# File 'lib/sidekiq/api.rb', line 291 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" job_class = @item['wrapped'] || args[0] if 'ActionMailer::DeliveryJob' == job_class # MailerClass#mailer_method args[0]['arguments'][0..1].join('#') else job_class end else klass end end |
#enqueued_at ⇒ Object
339 340 341 |
# File 'lib/sidekiq/api.rb', line 339 def enqueued_at @item['enqueued_at'] ? Time.at(@item['enqueued_at']).utc : nil end |
#jid ⇒ Object
335 336 337 |
# File 'lib/sidekiq/api.rb', line 335 def jid @item['jid'] end |
#klass ⇒ Object
287 288 289 |
# File 'lib/sidekiq/api.rb', line 287 def klass @item['class'] end |
#latency ⇒ Object
351 352 353 |
# File 'lib/sidekiq/api.rb', line 351 def latency Time.now.to_f - (@item['enqueued_at'] || @item['created_at']) end |
#queue ⇒ Object
347 348 349 |
# File 'lib/sidekiq/api.rb', line 347 def queue @queue end |