Browse Source

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

Ask Solem 14 years ago
parent
commit
da3644e189
1 changed files with 5 additions and 0 deletions
  1. 5 0
      celery/worker/job.py

+ 5 - 0
celery/worker/job.py

@@ -9,6 +9,7 @@ from datetime import datetime
 from celery import platform
 from celery.app import app_or_default
 from celery.datastructures import ExceptionInfo
+from celery.exceptions import SoftTimeLimitExceeded, TimeLimitExceeded
 from celery.execute.trace import TaskTrace
 from celery.registry import tasks
 from celery.utils import noop, kwdict, fun_takes_kwargs
@@ -387,9 +388,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: