2017-01-04 57 views
2

我有這個簡單的芹菜任務:芹菜正確傳播異常

@celery.task 
def test_exception(): 
    raise ValueError("foo") 

而且我想用get方法得到的結果,如果我的任務發生在快速完成。

但是,而不是預期的內置ValueError,我得到了celery.backends.base.ValueError。如何在這種情況下獲得原始ValueError

>>> 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' 
+0

您是否找到了替代解決方案?我偶然發現了同樣的問題。 – lec00q

回答