Skip to content

Commit d9244d1

Browse files
author
Matt George
committed
fixed some issues with registering khans
1 parent 8dbc832 commit d9244d1

File tree

3 files changed

+9
-15
lines changed

3 files changed

+9
-15
lines changed

pyres/__init__.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -258,9 +258,7 @@ def encode(cls, item):
258258

259259
@classmethod
260260
def decode(cls, item):
261-
print item
262261
if isinstance(item, basestring):
263-
264262
ret = json.loads(item)
265263
return ret
266264
return None

pyres/horde.py

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -164,14 +164,14 @@ def setup_resq(self):
164164
self.resq = self.server
165165
else:
166166
raise Exception("Bad server argument")
167+
167168
def validate_queues(self):
168169
"Checks if a worker is given atleast one queue to work on."
169170
if not self.queues:
170171
raise NoQueueError("Please give each worker at least one queue.")
171172

172173
def startup(self):
173174
self.register_signal_handlers()
174-
self.register_worker()
175175

176176
def register_signal_handlers(self):
177177
signal.signal(signal.SIGTERM, self.schedule_shutdown)
@@ -194,6 +194,9 @@ def add_child(self, signum, frame):
194194
self.add_minion()
195195

196196
def register_khan(self):
197+
if not hasattr(self, 'resq'):
198+
self.setup_resq()
199+
197200
self.resq.redis.sadd('resque:khans',str(self))
198201
self.started = datetime.datetime.now()
199202

@@ -245,13 +248,7 @@ def _remove_minion(self, pid=None):
245248
m.terminate()
246249
return m
247250

248-
def register_worker(self):
249-
logging.debug('registering khan')
250-
#self.resq.redis.sadd('resque:khans',str(self))
251-
#self.resq._redis.add("worker:#{self}:started", Time.now.to_s)
252-
#self.started = datetime.datetime.now()
253-
254-
def unregister_worker(self):
251+
def unregister_khan(self):
255252
logging.debug('unregistering khan')
256253
self.resq.redis.srem('resque:khans',str(self))
257254
self.started = None
@@ -264,6 +261,7 @@ def work(self, interval=2):
264261
self._workers[m.pid] = m
265262
logging.info('minion added at %s' % m.pid)
266263
self.setup_resq()
264+
self.register_khan()
267265
while True:
268266
self._check_commands()
269267
if self._shutdown:
@@ -273,7 +271,7 @@ def work(self, interval=2):
273271
#get job
274272
else:
275273
time.sleep(interval)
276-
self.unregister_worker()
274+
self.unregister_khan()
277275

278276
def __str__(self):
279277
hostname = os.uname()[1]

tests/test_horde.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,9 @@ def test_khan_init(self):
77
from pyres.exceptions import NoQueueError
88
self.assertRaises(NoQueueError, horde.Khan, 2, [])
99
self.assertRaises(ValueError, horde.Khan, 'test', ['test'])
10-
self.assertRaises(Exception, horde.Khan, 2, ['test'], TestProcess)
1110

12-
def test_register_worker(self):
11+
def test_register_khan(self):
1312
khan = horde.Khan(pool_size=1, queues=['basic'])
14-
khan.startup()
13+
khan.register_khan()
1514
name = "%s:%s" % (os.uname()[1],os.getpid())
16-
assert khan.started
1715
assert self.redis.sismember('resque:khans',name)

0 commit comments

Comments
 (0)