Skip to content

Commit 1bc819e

Browse files
author
Matt George
committed
first stab at a decorator for functions as opposed to a class
1 parent 3a50d9a commit 1bc819e

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed

pyres/decorators.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
from pyres import ResQ
2+
3+
def job(queue, resq=ResQ(),debug=False):
4+
def wrapper(func):
5+
def enqueue(*args):
6+
if not debug:
7+
class_name = '%s.%s' % (func.__module__, func.__name__)
8+
resq.enqueue_from_string(class_name, queue, *args)
9+
else:
10+
return func(*args)
11+
12+
def __call__(self, *args):
13+
return func(*args)
14+
15+
new_class = type('Job',(),{
16+
'queue': queue,
17+
'perform': staticmethod(func),
18+
'enqueue': staticmethod(enqueue),
19+
'__call__': __call__,
20+
'__name__': func.__name__
21+
})
22+
return new_class()
23+
return wrapper
24+
25+
26+

0 commit comments

Comments
 (0)