Class: Sidekiq::SortedEntry
- Inherits:
-
Job
- Object
- Job
- Sidekiq::SortedEntry
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, #enqueued_at, #jid, #klass, #latency, #queue
Constructor Details
#initialize(parent, score, item) ⇒ SortedEntry
Returns a new instance of SortedEntry.
237
238
239
240
241
|
# File 'lib/sidekiq/api.rb', line 237
def initialize(parent, score, item)
super(item)
@score = score
@parent = parent
end
|
Instance Attribute Details
#parent ⇒ Object
Returns the value of attribute parent.
235
236
237
|
# File 'lib/sidekiq/api.rb', line 235
def parent
@parent
end
|
#score ⇒ Object
Returns the value of attribute score.
234
235
236
|
# File 'lib/sidekiq/api.rb', line 234
def score
@score
end
|
Instance Method Details
#add_to_queue ⇒ Object
256
257
258
259
260
261
262
263
264
265
266
267
|
# File 'lib/sidekiq/api.rb', line 256
def add_to_queue
Sidekiq.redis do |conn|
results = conn.multi do
conn.zrangebyscore('schedule', score, score)
conn.zremrangebyscore('schedule', score, score)
end.first
results.map do |message|
msg = Sidekiq.load_json(message)
Sidekiq::Client.push(msg)
end
end
end
|
#at ⇒ Object
243
244
245
|
# File 'lib/sidekiq/api.rb', line 243
def at
Time.at(score).utc
end
|
#delete ⇒ Object
247
248
249
|
# File 'lib/sidekiq/api.rb', line 247
def delete
@parent.delete(score, jid)
end
|
#reschedule(at) ⇒ Object
251
252
253
254
|
# File 'lib/sidekiq/api.rb', line 251
def reschedule(at)
@parent.delete(score, jid)
@parent.schedule(at, item)
end
|
#retry ⇒ Object
269
270
271
272
273
274
275
276
277
278
279
280
281
282
|
# File 'lib/sidekiq/api.rb', line 269
def retry
raise "Retry not available on jobs which have not failed" unless item["failed_at"]
Sidekiq.redis do |conn|
results = conn.multi do
conn.zrangebyscore(parent.name, score, score)
conn.zremrangebyscore(parent.name, score, score)
end.first
results.map do |message|
msg = Sidekiq.load_json(message)
msg['retry_count'] = msg['retry_count'] - 1
Sidekiq::Client.push(msg)
end
end
end
|