Skip to content

Commit 3d98841

Browse files
committed
more change merged
1 parent d79bd49 commit 3d98841

File tree

2 files changed

+33
-0
lines changed

2 files changed

+33
-0
lines changed

src/pyres/worker.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,25 @@ def validate_queues(self):
2929
def register_worker(self):
3030
self.resq.redis.sadd('resque:workers',str(self))
3131
#self.resq._redis.add("worker:#{self}:started", Time.now.to_s)
32+
self.started = datetime.datetime.now()
3233
#Stat.clear("processed:#{self}")
3334
#Stat.clear("failed:#{self}")
3435

36+
def _set_started(self, time):
37+
if time:
38+
self.resq.redis.set("worker:%s:started" % self, time.strftime('%Y-%m-%d %H:%M:%S'))
39+
else:
40+
self.resq.redis.delete("worker:%s:started" % self)
41+
42+
def _get_started(self):
43+
datestring = self.resq.redis.get("worker:%s:started" % self)
44+
ds = None
45+
if datestring:
46+
ds = datetime.datetime.strptime(datestring, '%Y-%m-%d %H:%M:%S')
47+
return ds
48+
49+
started = property(_get_started, _set_started)
50+
3551
def unregister_worker(self):
3652
self.resq.redis.srem('resque:workers',str(self))
3753

@@ -140,11 +156,17 @@ def processed(self):
140156
total_processed.incr()
141157
worker_processed.incr()
142158

159+
def get_processed(self):
160+
return Stat("processed:%s" % str(self), self.resq).get()
161+
143162
def failed(self):
144163
total_failed = Stat("failed", self.resq)
145164
stat = Stat("failed:%s" % self, self.resq)
146165
total_failed.incr()
147166
stat.incr()
167+
168+
def get_failed(self):
169+
return Stat("failed:%s" % self, self.resq).get()
148170

149171
def job(self):
150172
data = self.resq.redis.get("resque:worker:%s" % self)

src/tests.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -293,6 +293,17 @@ def test_working(self):
293293
assert str(worker) == str(workers[0])
294294
assert worker != workers[0]
295295

296+
def test_started(self):
297+
import datetime
298+
worker = Worker(['basic'])
299+
dt = datetime.datetime.now()
300+
worker.started = dt
301+
name = "%s:%s:%s" % (os.uname()[1],os.getpid(),'basic')
302+
assert self.redis.get('resque:worker:%s:started' % name) == dt.strftime('%Y-%m-%d %H:%M:%S')
303+
assert worker.started == datetime.datetime.strptime(dt.strftime('%Y-%m-%d %H:%M:%S'),'%Y-%m-%d %H:%M:%S')
304+
worker.started = None
305+
assert not self.redis.exists('resque:worker:%s:started' % name)
306+
296307
class StatTests(PyResTests):
297308
def test_incr(self):
298309
stat_obj = Stat('test_stat', self.resq)

0 commit comments

Comments
 (0)