|
@@ -67,6 +67,10 @@ class BaseBackend(object):
|
|
|
"""Prepare value for storage."""
|
|
|
return result
|
|
|
|
|
|
+ def forget(self, task_id):
|
|
|
+ raise NotImplementedError("%s does not implement forget." % (
|
|
|
+ self.__class__))
|
|
|
+
|
|
|
def wait_for(self, task_id, timeout=None):
|
|
|
"""Wait for task and return its result.
|
|
|
|
|
@@ -211,6 +215,9 @@ class KeyValueStoreBackend(BaseDictBackend):
|
|
|
def set(self, key, value):
|
|
|
raise NotImplementedError("Must implement the set method.")
|
|
|
|
|
|
+ def delete(self, key):
|
|
|
+ raise NotImplementedError("Must implement the delete method")
|
|
|
+
|
|
|
def get_key_for_task(self, task_id):
|
|
|
"""Get the cache key for a task by id."""
|
|
|
return "celery-task-meta-%s" % task_id
|
|
@@ -219,6 +226,9 @@ class KeyValueStoreBackend(BaseDictBackend):
|
|
|
"""Get the cache key for a task by id."""
|
|
|
return "celery-taskset-meta-%s" % task_id
|
|
|
|
|
|
+ def forget(self, task_id):
|
|
|
+ self.delete(task_id)
|
|
|
+
|
|
|
def _store_result(self, task_id, result, status, traceback=None):
|
|
|
meta = {"status": status, "result": result, "traceback": traceback}
|
|
|
self.set(self.get_key_for_task(task_id), pickle.dumps(meta))
|