Skip to content

Commit 3c3fca9

Browse files
author
Matt George
committed
Merge branch 'unix_timestamps'
2 parents 42e09da + 29a3938 commit 3c3fca9

File tree

4 files changed

+19
-16
lines changed

4 files changed

+19
-16
lines changed

pyres/failure/redis.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import datetime
1+
import datetime, time
22
from base import BaseBackend
33
from pyres import ResQ
44

@@ -10,7 +10,7 @@ def save(self, resq=None):
1010
if not resq:
1111
resq = ResQ()
1212
data = {
13-
'failed_at' : str(datetime.datetime.now()),
13+
'failed_at' : int(time.mktime(datetime.datetime.now().timetuple())),
1414
'payload' : self._payload,
1515
'error' : self._parse_message(self._exception),
1616
'backtrace' : self._parse_traceback(self._traceback),

pyres/worker.py

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
from pyres import ResQ, Stat
44
import logging
55
import signal
6-
import datetime
6+
import datetime, time
77
import os, sys
88
import time
99
import json_parser as json
@@ -43,18 +43,19 @@ def register_worker(self):
4343
self.started = datetime.datetime.now()
4444

4545

46-
def _set_started(self, time):
47-
if time:
48-
self.resq.redis.set("resque:worker:%s:started" % self, time.strftime('%Y-%m-%d %H:%M:%S'))
46+
def _set_started(self, dt):
47+
if dt:
48+
key = int(time.mktime(dt.timetuple()))
49+
self.resq.redis.set("resque:worker:%s:started" % self, key)
4950
else:
5051
self.resq.redis.delete("resque:worker:%s:started" % self)
5152

5253
def _get_started(self):
5354
datestring = self.resq.redis.get("resque:worker:%s:started" % self)
54-
ds = None
55-
if datestring:
56-
ds = datetime.datetime.strptime(datestring, '%Y-%m-%d %H:%M:%S')
57-
return ds
55+
#ds = None
56+
#if datestring:
57+
# ds = datetime.datetime.strptime(datestring, '%Y-%m-%d %H:%M:%S')
58+
return datestring
5859

5960
started = property(_get_started, _set_started)
6061

@@ -177,7 +178,7 @@ def working_on(self, job):
177178
logging.debug('marking as working on')
178179
data = {
179180
'queue': job._queue,
180-
'run_at': str(datetime.datetime.now()),
181+
'run_at': int(time.mktime(datetime.datetime.now().timetuple())),
181182
'payload': job._payload
182183
}
183184
data = json.dumps(data)

resweb/views.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ def workers(self):
105105
if data.has_key('queue'):
106106
item['data'] = True
107107
item['code'] = data['payload']['class']
108-
item['runat'] = data['run_at']
108+
item['runat'] = str(datetime.datetime.fromtimestamp(float(data['run_at'])))
109109
else:
110110
item['data'] = False
111111
item['nodata'] = not item['data']
@@ -155,7 +155,7 @@ def workers(self):
155155
if data.has_key('queue'):
156156
item['data'] = True
157157
item['code'] = data['payload']['class']
158-
item['runat'] = data['run_at']
158+
item['runat'] = str(datetime.datetime.fromtimestamp(float(data['run_at'])))
159159
else:
160160
item['data'] = False
161161
item['nodata'] = not item['data']
@@ -217,6 +217,7 @@ def failed_jobs(self):
217217
jobs = []
218218
for job in failure.all(self.resq, self._start, self._start + 20):
219219
item = job
220+
item['failed_at'] = str(datetime.datetime.fromtimestamp(float(item['failed_at'])))
220221
item['worker_url'] = '/workers/%s/' % job['worker']
221222
item['payload_args'] = str(job['payload']['args'])
222223
item['payload_class'] = job['payload']['class']
@@ -387,7 +388,7 @@ def code(self):
387388
def runat(self):
388389
data = self._worker.processing()
389390
if self.data():
390-
return str(data['run_at'])
391+
return str(datetime.datetime.fromtimestamp(float(data['run_at'])))
391392
return ''
392393

393394
"""

tests/test_worker.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
from pyres.job import Job
44
from pyres.worker import Worker
55
import os
6+
import time
67
class WorkerTests(PyResTests):
78
def test_worker_init(self):
89
from pyres.exceptions import NoQueueError
@@ -140,8 +141,8 @@ def test_started(self):
140141
dt = datetime.datetime.now()
141142
worker.started = dt
142143
name = "%s:%s:%s" % (os.uname()[1],os.getpid(),'basic')
143-
assert self.redis.get('resque:worker:%s:started' % name) == dt.strftime('%Y-%m-%d %H:%M:%S')
144-
assert worker.started == datetime.datetime.strptime(dt.strftime('%Y-%m-%d %H:%M:%S'),'%Y-%m-%d %H:%M:%S')
144+
assert self.redis.get('resque:worker:%s:started' % name) == str(int(time.mktime(dt.timetuple())))
145+
assert worker.started == str(int(time.mktime(dt.timetuple())))
145146
worker.started = None
146147
assert not self.redis.exists('resque:worker:%s:started' % name)
147148

0 commit comments

Comments
 (0)