Forráskód Böngészése

gevent.Timeout inherits from BaseException :anger1:

Ask Solem 11 éve
szülő
commit
b44544fe65
2 módosított fájl, 5 hozzáadás és 2 törlés
  1. 3 1
      celery/concurrency/base.py
  2. 2 1
      celery/concurrency/gevent.py

+ 3 - 1
celery/concurrency/base.py

@@ -27,11 +27,13 @@ logger = get_logger('celery.pool')
 
 def apply_target(target, args=(), kwargs={}, callback=None,
                  accept_callback=None, pid=None, getpid=os.getpid,
-                 monotonic=monotonic, **_):
+                 propagate=(), monotonic=monotonic, **_):
     if accept_callback:
         accept_callback(pid or getpid(), monotonic())
     try:
         ret = target(*args, **kwargs)
+    except propagate:
+        raise
     except Exception:
         raise
     except BaseException as exc:

+ 2 - 1
celery/concurrency/gevent.py

@@ -29,7 +29,8 @@ def apply_timeout(target, args=(), kwargs={}, callback=None,
     try:
         with Timeout(timeout):
             return apply_target(target, args, kwargs, callback,
-                                accept_callback, pid, **rest)
+                                accept_callback, pid,
+                                propagate=(Timeout, ), **rest)
     except Timeout:
         return timeout_callback(False, timeout)