9
9
from pyres .job import Job
10
10
from pyres import ResQ , Stat , __version__
11
11
12
- try :
13
- from setproctitle import setproctitle
14
- except :
15
- def setproctitle (name ):
16
- pass
12
+
17
13
18
14
logger = logging .getLogger (__name__ )
19
15
@@ -25,6 +21,9 @@ class and passes a comma-separated list of queues to listen on.::
25
21
>>> Worker.run([queue1, queue2], server="localhost:6379")
26
22
27
23
"""
24
+
25
+ job_class = Job
26
+
28
27
def __init__ (self , queues = (), server = "localhost:6379" , password = None ):
29
28
self .queues = queues
30
29
self .validate_queues ()
@@ -140,7 +139,7 @@ def work(self, interval=5):
140
139
if job :
141
140
logger .info ('picked up job' )
142
141
logger .debug ('job details: %s' % job )
143
- self .child = os .fork ()
142
+ self .child = os .fork ()
144
143
if self .child :
145
144
setproctitle ("pyres_worker%s: Forked %s at %s" %
146
145
(__version__ ,
@@ -176,11 +175,15 @@ def work(self, interval=5):
176
175
#time.sleep(interval)
177
176
self .unregister_worker ()
178
177
178
+ def before_process (self , job ):
179
+ return job
180
+
179
181
def process (self , job = None ):
180
182
if not job :
181
183
job = self .reserve ()
182
184
try :
183
185
self .working_on (job )
186
+ job = self .before_process (job )
184
187
return job .perform ()
185
188
except Exception , e :
186
189
exceptionType , exceptionValue , exceptionTraceback = sys .exc_info ()
@@ -196,7 +199,7 @@ def process(self, job=None):
196
199
def reserve (self , timeout = 10 ):
197
200
for q in self .queues :
198
201
logger .debug ('checking queue %s' % q )
199
- job = Job .reserve (q , self .resq , self .__str__ (), timeout = timeout )
202
+ job = self . job_class .reserve (q , self .resq , self .__str__ (), timeout = timeout )
200
203
if job :
201
204
logger .info ('Found job on %s' % q )
202
205
return job
@@ -306,6 +309,13 @@ def exists(cls, worker_id, resq):
306
309
return resq .redis .sismember ('resque:workers' , worker_id )
307
310
308
311
312
+ try :
313
+ from setproctitle import setproctitle
314
+ except ImportError :
315
+ def setproctitle (name ):
316
+ pass
317
+
318
+
309
319
if __name__ == "__main__" :
310
320
from optparse import OptionParser
311
321
parser = OptionParser ()
0 commit comments