Sfoglia il codice sorgente

Mark task with FAILURE *TimeLimitExceeded() when process times out. Closes #137.

Ask Solem 14 anni fa
parent
commit
f691d050fd
1 ha cambiato i file con 5 aggiunte e 0 eliminazioni
  1. 5 0
      celery/worker/job.py

+ 5 - 0
celery/worker/job.py

@@ -9,6 +9,7 @@ from datetime import datetime
 from celery import log
 from celery import platform
 from celery.datastructures import ExceptionInfo
+from celery.exceptions import SoftTimeLimitExceeded, TimeLimitExceeded
 from celery.execute.trace import TaskTrace
 from celery.loaders import current_loader
 from celery.registry import tasks
@@ -386,9 +387,13 @@ class TaskRequest(object):
         if soft:
             self.logger.warning("Soft time limit exceeded for %s[%s]" % (
                 self.task_name, self.task_id))
+            exc = SoftTimeLimitExceeded()
         else:
             self.logger.error("Hard time limit exceeded for %s[%s]" % (
                 self.task_name, self.task_id))
+            exc = TimeLimitExceeded()
+
+        self.task.backend.mark_as_failure(self.task_id, exc)
 
     def acknowledge(self):
         if not self.acknowledged: