6
6
import os , sys
7
7
import time
8
8
import simplejson
9
+
9
10
class Worker (object ):
10
11
def __init__ (self , queues = [], server = "localhost:6379" ):
11
12
self .queues = queues
@@ -26,7 +27,7 @@ def validate_queues(self):
26
27
raise NoQueueError ("Please give each worker at least one queue." )
27
28
28
29
def register_worker (self ):
29
- self .resq .redis .sadd ('workers' ,str (self ))
30
+ self .resq .redis .sadd ('resque: workers' ,str (self ))
30
31
#self.resq._redis.add("worker:#{self}:started", Time.now.to_s)
31
32
self .started = datetime .datetime .now ()
32
33
#Stat.clear("processed:#{self}")
@@ -47,7 +48,7 @@ def _get_started(self):
47
48
started = property (_get_started , _set_started )
48
49
49
50
def unregister_worker (self ):
50
- self .resq .redis .srem ('workers' ,str (self ))
51
+ self .resq .redis .srem ('resque: workers' ,str (self ))
51
52
self .started = None
52
53
53
54
def startup (self ):
@@ -141,14 +142,14 @@ def working_on(self, job):
141
142
'payload' : job ._payload
142
143
}
143
144
data = simplejson .dumps (data )
144
- self .resq .redis ["worker:%s" % str (self )] = data
145
+ self .resq .redis ["resque: worker:%s" % str (self )] = data
145
146
print "worker:%s" % str (self )
146
147
print self .resq .redis ["worker:%s" % str (self )]
147
148
148
149
def done_working (self ):
149
150
print 'done working'
150
151
self .processed ()
151
- self .resq .redis .delete ("worker:%s" % str (self ))
152
+ self .resq .redis .delete ("resque: worker:%s" % str (self ))
152
153
153
154
def processed (self ):
154
155
total_processed = Stat ("processed" , self .resq )
@@ -167,7 +168,7 @@ def failed(self):
167
168
def get_failed (self ):
168
169
return Stat ("failed:%s" % self , self .resq ).get ()
169
170
def job (self ):
170
- data = self .resq .redis .get ("worker:%s" % self )
171
+ data = self .resq .redis .get ("resque: worker:%s" % self )
171
172
if data :
172
173
return ResQ .decode (data )
173
174
return {}
@@ -190,7 +191,7 @@ def all(cls, host="localhost:6379"):
190
191
resq = ResQ (host )
191
192
elif isinstance (host , ResQ ):
192
193
resq = host
193
- return [Worker .find (w ,resq ) for w in resq .redis .smembers ('workers' )]
194
+ return [Worker .find (w ,resq ) for w in resq .redis .smembers ('resque: workers' )]
194
195
195
196
@classmethod
196
197
def working (cls , host ):
@@ -200,7 +201,8 @@ def working(cls, host):
200
201
resq = host
201
202
total = []
202
203
for key in Worker .all (host ):
203
- total .append ('worker:%s' % key )
204
+ if Worker .exists (key , resq ):
205
+ total .append ('resque:worker:%s' % key )
204
206
names = []
205
207
for key in total :
206
208
value = resq .redis .get (key )
@@ -221,7 +223,7 @@ def find(cls, worker_id, resq):
221
223
222
224
@classmethod
223
225
def exists (cls , worker_id , resq ):
224
- return resq .redis .sismember ('workers' , worker_id )
226
+ return resq .redis .sismember ('resque: workers' , worker_id )
225
227
226
228
227
229
if __name__ == "__main__" :
@@ -236,4 +238,4 @@ def exists(cls, worker_id, resq):
236
238
queues = options .queue_list .split (',' )
237
239
import sys
238
240
sys .path .insert (0 ,'/Users/mgeorge/dev/pyres/src' )
239
- Worker .run (queues , options .server )
241
+ Worker .run (queues , options .server )
0 commit comments