def refresh(self): obj = self.backend.get(self.key) if len(obj) == 0: return None def to_date(date_str): if date_str is None: return else: return utcparse(date_str) self.published_at = to_date(obj.get('published_at')) self.max_retries = safe_int(obj.get('max_retries')) self.error = as_text(obj.get('error')) self._id = as_text(obj.get('id')) child_key = as_text(obj.get('child')) if child_key: self.child = Job.fetch(child_key, backend=self.backend, serializer=self.serializer) if not self.error: self.error = None self._status = safe_int(obj.get('status')) self.name = as_text(obj.get('name')) result = obj.get('result') if result: self.result = unpickle(result) else: self.result = None kwargs = obj.get('kwargs') if kwargs: self.kwargs = self.serializer.loads(as_text(kwargs)) args = obj.get('args') if args: self.args = self.serializer.loads(as_text(args)) if self.name: self.task = registry.get_registered(self.name)
def utcparse(string): return datetime.datetime.strptime(as_text(string), '%Y-%m-%dT%H:%M:%SZ')
def _get_job_id(self, message): return as_text(message.body)
def decode_hash(h): return dict((as_text(k), h[k]) for k in h)