Class: Sidekiq::SortedEntry

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

Instance Attribute Summary collapse

Attributes inherited from Job

#item, #value

Instance Method Summary collapse

Methods inherited from Job

#[], #args, #created_at, #display_args, #display_class, #enqueued_at, #jid, #klass, #latency, #parse, #queue

Constructor Details

#initialize(parent, score, item) ⇒ SortedEntry

Returns a new instance of SortedEntry.


419
420
421
422
423
# File 'lib/sidekiq/api.rb', line 419

def initialize(parent, score, item)
  super(item)
  @score = score
  @parent = parent
end

Instance Attribute Details

#parentObject (readonly)

Returns the value of attribute parent


417
418
419
# File 'lib/sidekiq/api.rb', line 417

def parent
  @parent
end

#scoreObject (readonly)

Returns the value of attribute score


416
417
418
# File 'lib/sidekiq/api.rb', line 416

def score
  @score
end

Instance Method Details

#add_to_queueObject


442
443
444
445
446
447
# File 'lib/sidekiq/api.rb', line 442

def add_to_queue
  remove_job do |message|
    msg = Sidekiq.load_json(message)
    Sidekiq::Client.push(msg)
  end
end

#atObject


425
426
427
# File 'lib/sidekiq/api.rb', line 425

def at
  Time.at(score).utc
end

#deleteObject


429
430
431
432
433
434
435
# File 'lib/sidekiq/api.rb', line 429

def delete
  if @value
    @parent.delete_by_value(@parent.name, @value)
  else
    @parent.delete_by_jid(score, jid)
  end
end

#error?Boolean

Returns:

  • (Boolean)

472
473
474
# File 'lib/sidekiq/api.rb', line 472

def error?
  !!item['error_class']
end

#killObject

Place job in the dead set


459
460
461
462
463
464
465
466
467
468
469
470
# File 'lib/sidekiq/api.rb', line 459

def kill
  remove_job do |message|
    now = Time.now.to_f
    Sidekiq.redis do |conn|
      conn.multi do
        conn.zadd('dead', now, message)
        conn.zremrangebyscore('dead', '-inf', now - DeadSet.timeout)
        conn.zremrangebyrank('dead', 0, - DeadSet.max_jobs)
      end
    end
  end
end

#reschedule(at) ⇒ Object


437
438
439
440
# File 'lib/sidekiq/api.rb', line 437

def reschedule(at)
  delete
  @parent.schedule(at, item)
end

#retryObject


449
450
451
452
453
454
455
# File 'lib/sidekiq/api.rb', line 449

def retry
  remove_job do |message|
    msg = Sidekiq.load_json(message)
    msg['retry_count'] -= 1 if msg['retry_count']
    Sidekiq::Client.push(msg)
  end
end