Class: Sidekiq::SortedEntry

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

Instance Attribute Summary collapse

Attributes inherited from Job

#item

Instance Method Summary collapse

Methods inherited from Job

#[], #args, #jid, #klass, #queue

Constructor Details

#initialize(parent, score, item) ⇒ SortedEntry

Returns a new instance of SortedEntry.



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

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

Instance Attribute Details

#scoreObject (readonly)

Returns the value of attribute score.



197
198
199
# File 'lib/sidekiq/api.rb', line 197

def score
  @score
end

Instance Method Details

#atObject



205
206
207
# File 'lib/sidekiq/api.rb', line 205

def at
  Time.at(score)
end

#deleteObject



209
210
211
# File 'lib/sidekiq/api.rb', line 209

def delete
  @parent.delete(score, jid)
end

#reschedule(at) ⇒ Object



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

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

#retryObject



218
219
220
221
222
223
224
225
226
227
228
229
# File 'lib/sidekiq/api.rb', line 218

def retry
  raise "Retry not available on jobs not in the Retry queue." unless item["failed_at"]
  Sidekiq.redis do |conn|
    results = conn.zrangebyscore('retry', score, score)
    conn.zremrangebyscore('retry', score, score)
    results.map do |message|
      msg = Sidekiq.load_json(message)
      msg['retry_count'] = msg['retry_count'] - 1
      conn.rpush("queue:#{msg['queue']}", Sidekiq.dump_json(msg))
    end
  end
end