Skip to content

Commit

Permalink
Merge pull request #51 from seomoz/add-requeue
Browse files Browse the repository at this point in the history
Add requeue.
  • Loading branch information
myronmarston committed Jun 16, 2014
2 parents a9ba613 + 525c390 commit ba8e556
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 0 deletions.
6 changes: 6 additions & 0 deletions api.lua
Expand Up @@ -148,6 +148,12 @@ QlessAPI.put = function(now, me, queue, jid, klass, data, delay, ...)
return Qless.queue(queue):put(now, me, jid, klass, data, delay, unpack(arg))
end

QlessAPI.requeue = function(now, me, queue, jid, ...)
local job = Qless.job(jid)
assert(job:exists(), 'Requeue(): Job ' .. jid .. ' does not exist')
return QlessAPI.put(now, me, queue, jid, unpack(arg))
end

QlessAPI.unfail = function(now, queue, group, count)
return Qless.queue(queue):unfail(now, group, count)
end
Expand Down
13 changes: 13 additions & 0 deletions test/test_job.py
Expand Up @@ -40,6 +40,19 @@ def test_history(self):
{'q': 'queue', 'what': 'put', 'when': 98},
{'q': 'queue', 'what': 'put', 'when': 99}])

class TestRequeue(TestQless):
def test_requeue_existing_job(self):
'''Requeueing an existing job is identical to `put`'''
self.lua('put', 0, 'worker', 'queue', 'jid', 'klass', {}, 0)
self.lua('requeue', 1, 'worker', 'queue-2', 'jid', 'klass', {}, 0)
self.assertEqual(self.lua('get', 0, 'jid')['queue'], 'queue-2')

def test_requeue_cancelled_job(self):
'''Requeueing a cancelled (or non-existent) job fails'''
self.lua('put', 0, 'worker', 'queue', 'jid', 'klass', {}, 0)
self.lua('cancel', 1, 'jid')
self.assertRaisesRegexp(redis.ResponseError, r'does not exist',
self.lua, 'requeue', 2, 'worker', 'queue-2', 'jid', 'klass', {}, 0)

class TestComplete(TestQless):
'''Test how we complete jobs'''
Expand Down

0 comments on commit ba8e556

Please sign in to comment.