Bläddra i källkod

Chord: Delete saved taskset result after applying body

Ask Solem 14 år sedan
förälder
incheckning
4d75e953a4
3 ändrade filer med 3 tillägg och 2 borttagningar
  1. 1 0
      celery/backends/pyredis.py
  2. 2 1
      celery/task/chord.py
  3. 0 1
      celery/tests/test_backends/test_amqp.py

+ 1 - 0
celery/backends/pyredis.py

@@ -90,6 +90,7 @@ class RedisBackend(KeyValueStoreBackend):
         deps = TaskSetResult.restore(setid, backend=task.backend)
         if self.client.incr(key) >= deps.total:
             subtask(task.request.chord).delay(deps.join())
+            deps.delete()
         self.client.expire(key, 86400)
 
     @cached_property

+ 2 - 1
celery/task/chord.py

@@ -9,7 +9,8 @@ from celery.task.sets import TaskSet, subtask
 def _unlock_chord(setid, callback, interval=1, max_retries=None):
     result = TaskSetResult.restore(setid)
     if result.ready():
-        return subtask(callback).delay(result.join())
+        subtask(callback).delay(result.join())
+        result.delete()
     _unlock_chord.retry(countdown=interval, max_retries=max_retries)
 
 

+ 0 - 1
celery/tests/test_backends/test_amqp.py

@@ -112,7 +112,6 @@ class test_AMQPBackend(unittest.TestCase):
         self.assertRaises(KeyError, backend.store_result,
                           "foo", "bar", "STARTED", max_retries=None)
 
-        print(backend.store_result)
         self.assertRaises(KeyError, backend.store_result,
                           "foo", "bar", "STARTED", max_retries=10)