def _wait_for_result(self, task, callback, timeout=CODE_EXECUTE_TIMEOUT): if timeout == 0: # celery y deadlock me?!? task.revoke() callback(TimeLimitExceeded()) elif not task.ready(): wait = 0.5 IOLoop.instance().add_timeout(time.time() + wait, lambda: self._wait_for_result(task, callback, timeout - wait)) else: result = task.result callback(result)
def on_timeout(self, soft): state.task_ready(self) 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() if self._store_errors: self.task.backend.mark_as_failure(self.task_id, exc)
def _on_hard_timeout(job, i): debug('hard time limit exceeded for %i', i) # Remove from _pool process, _index = _process_by_pid(job._worker_pid) # Remove from cache and set return value to an exception job._set(i, (False, TimeLimitExceeded())) # Run timeout callback if job._timeout_callback is not None: job._timeout_callback(soft=False) if not process: return # Terminate the process process.terminate()
def on_timeout(self, soft, timeout): """Handler called if the task times out.""" task_ready(self) if soft: warn('Soft time limit (%ss) exceeded for %s[%s]', timeout, self.name, self.id) exc = SoftTimeLimitExceeded(timeout) else: error('Hard time limit (%ss) exceeded for %s[%s]', timeout, self.name, self.id) exc = TimeLimitExceeded(timeout) if self.store_errors: self.task.backend.mark_as_failure(self.id, exc, request=self)
def on_timeout(self, soft, timeout): """Handler called if the task times out.""" state.task_ready(self) if soft: self.logger.warning("Soft time limit (%ss) exceeded for %s[%s]" % (timeout, self.task_name, self.task_id)) exc = SoftTimeLimitExceeded(timeout) else: self.logger.error("Hard time limit (%ss) exceeded for %s[%s]" % (timeout, self.task_name, self.task_id)) exc = TimeLimitExceeded(timeout) if self._store_errors: self.task.backend.mark_as_failure(self.task_id, exc)
def on_timeout(self, soft, timeout): """Handler called if the task times out.""" if soft: warn('Soft time limit (%ss) exceeded for %s[%s]', timeout, self.name, self.id) else: task_ready(self) error('Hard time limit (%ss) exceeded for %s[%s]', timeout, self.name, self.id) exc = TimeLimitExceeded(timeout) self.task.backend.mark_as_failure( self.id, exc, request=self, store_result=self.store_errors, ) if self.task.acks_late and self.task.acks_on_failure_or_timeout: self.acknowledge()
def _on_hard_timeout(job, i, hard_timeout): if job.ready(): return debug('hard time limit exceeded for %i', i) # Remove from cache and set return value to an exception exc_info = None try: raise TimeLimitExceeded(hard_timeout) except TimeLimitExceeded: exc_info = sys.exc_info() job._set(i, (False, ExceptionInfo(exc_info))) # Remove from _pool process, _index = _process_by_pid(job._worker_pid) # Run timeout callback if job._timeout_callback is not None: job._timeout_callback(soft=False, timeout=hard_timeout) if process: process.terminate()