Skip to content

Commit 47f602a

Browse files
author
Matt George
committed
added enqueue_from_string
In some cases you might want to enqueue without reference to the class that will be doing the work later. This method allows for reference by string.
1 parent 0af35f6 commit 47f602a

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

src/pyres/__init__.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,9 @@ def enqueue(self, klass, *args):
7575
#print class_name
7676
self.push(queue, {'class':class_name,'args':args})
7777
#Job.create(queue, klass,*args)
78-
78+
def enqueue_from_string(self, klass_as_string, queue, *args):
79+
self.push(queue, {'class':klass_as_string,'args':args})
80+
7981
def queues(self):
8082
return self.redis.smembers("queues")
8183

src/tests.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,16 @@ def test_workers(self):
106106
assert len(self.resq.workers()) == 1
107107
assert name in self.resq.workers()
108108

109+
def test_enqueue_from_string(self):
110+
self.resq.enqueue_from_string('tests.Basic','basic','test1')
111+
name = "%s:%s:%s" % (os.uname()[1],os.getpid(),'basic')
112+
assert self.redis.llen("queue:basic") == 1
113+
job = Job.reserve('basic', self.resq)
114+
worker = Worker(['basic'])
115+
worker.process(job)
116+
assert not self.redis.get('worker:%s' % worker)
117+
assert not self.redis.get("stat:failed")
118+
assert not self.redis.get("stat:failed:%s" % name)
109119

110120
class JobTests(PyResTests):
111121
def test_reserve(self):

0 commit comments

Comments
 (0)