Ich habe diese einfache Sellerie Aufgabe:Sellerie propagiert falsch Ausnahmen
@celery.task
def test_exception():
raise ValueError("foo")
Und ich will die get Methode verwenden, um das Ergebnis zu erhalten, wenn meine Aufgabe schnell zu beenden passiert.
Aber anstelle der erwarteten eingebauten ValueError
, bekomme ich die celery.backends.base.ValueError
. Wie kann ich das Original ValueError
in einem solchen Fall bekommen?
>>> from tasks import test_exception
>>> try:
... test_exception.delay().get()
... except ValueError as e:
... print("Success: %s", str(e))
... except:
... E=sys.exc_info()
...
>>> E
(<class 'celery.backends.base.ValueError'>, ValueError(u'foo',), <traceback object at 0x7f858c7f5ea8>)
>>> E[0].__module__
'celery.backends.base'
Haben Sie eine alternative Lösung gefunden? Ich bin auf dasselbe Problem gestoßen. – lec00q