class DummyClient(object): def __init__(self, *args, **kwargs): self.cache = LocalCache(5000) def get(self, key, *args, **kwargs): return self.cache.get(key) def set(self, key, value, *args, **kwargs): self.cache[key] = value def delete(self, key, *args, **kwargs): self.cache.pop(key, None)
class DummyClient(object): def __init__(self, *args, **kwargs): self.cache = LocalCache(5000) def get(self, key, *args, **kwargs): return self.cache.get(key) def get_multi(self, keys): cache = self.cache return dict((k, cache[k]) for k in keys if k in cache) def set(self, key, value, *args, **kwargs): self.cache[key] = value def delete(self, key, *args, **kwargs): self.cache.pop(key, None)
class BaseDictBackend(BaseBackend): def __init__(self, *args, **kwargs): super(BaseDictBackend, self).__init__(*args, **kwargs) self._cache = LocalCache(limit=kwargs.get("max_cached_results") or self.app.conf.CELERY_MAX_CACHED_RESULTS) def store_result(self, task_id, result, status, traceback=None): """Store task result and status.""" result = self.encode_result(result, status) return self._store_result(task_id, result, status, traceback) def forget(self, task_id): self._cache.pop(task_id, None) self._forget(task_id) def get_status(self, task_id): """Get the status of a task.""" return self.get_task_meta(task_id)["status"] def get_traceback(self, task_id): """Get the traceback for a failed task.""" return self.get_task_meta(task_id).get("traceback") def get_result(self, task_id): """Get the result of a task.""" meta = self.get_task_meta(task_id) if meta["status"] in self.EXCEPTION_STATES: return self.exception_to_python(meta["result"]) else: return meta["result"] def get_task_meta(self, task_id, cache=True): if cache and task_id in self._cache: return self._cache[task_id] meta = self._get_task_meta_for(task_id) if cache and meta.get("status") == states.SUCCESS: self._cache[task_id] = meta return meta def reload_task_result(self, task_id): self._cache[task_id] = self.get_task_meta(task_id, cache=False) def reload_taskset_result(self, taskset_id): self._cache[taskset_id] = self.get_taskset_meta(taskset_id, cache=False) def get_taskset_meta(self, taskset_id, cache=True): if cache and taskset_id in self._cache: return self._cache[taskset_id] meta = self._restore_taskset(taskset_id) if cache and meta is not None: self._cache[taskset_id] = meta return meta def restore_taskset(self, taskset_id, cache=True): """Get the result for a taskset.""" meta = self.get_taskset_meta(taskset_id, cache=cache) if meta: return meta["result"] def save_taskset(self, taskset_id, result): """Store the result of an executed taskset.""" return self._save_taskset(taskset_id, result)
class BaseDictBackend(BaseBackend): def __init__(self, *args, **kwargs): super(BaseDictBackend, self).__init__(*args, **kwargs) self._cache = LocalCache( limit=kwargs.get("max_cached_results") or conf.MAX_CACHED_RESULTS) def store_result(self, task_id, result, status, traceback=None): """Store task result and status.""" result = self.encode_result(result, status) return self._store_result(task_id, result, status, traceback) def forget(self, task_id): self._cache.pop(task_id, None) self._forget(task_id) def get_status(self, task_id): """Get the status of a task.""" return self.get_task_meta(task_id)["status"] def get_traceback(self, task_id): """Get the traceback for a failed task.""" return self.get_task_meta(task_id).get("traceback") def get_result(self, task_id): """Get the result of a task.""" meta = self.get_task_meta(task_id) if meta["status"] in self.EXCEPTION_STATES: return self.exception_to_python(meta["result"]) else: return meta["result"] def get_task_meta(self, task_id, cache=True): if cache and task_id in self._cache: return self._cache[task_id] meta = self._get_task_meta_for(task_id) if cache and meta.get("status") == states.SUCCESS: self._cache[task_id] = meta return meta def reload_task_result(self, task_id): self._cache[task_id] = self.get_task_meta(task_id, cache=False) def reload_taskset_result(self, taskset_id): self._cache[taskset_id] = self.get_taskset_meta(taskset_id, cache=False) def get_taskset_meta(self, taskset_id, cache=True): if cache and taskset_id in self._cache: return self._cache[taskset_id] meta = self._restore_taskset(taskset_id) if cache and meta is not None: self._cache[taskset_id] = meta return meta def restore_taskset(self, taskset_id, cache=True): """Get the result for a taskset.""" meta = self.get_taskset_meta(taskset_id, cache=cache) if meta: return meta["result"] def save_taskset(self, taskset_id, result): """Store the result of an executed taskset.""" return self._save_taskset(taskset_id, result)