簡體   English   中英

無法同步調用Django測試中的芹菜任務

[英]Can't invoke celery task in Django tests synchronously

我想在我的Django測試期間同步調用芹菜任務而不需要運行芹菜工作者。 為了實現這一點,我在settings.py中指定了CELERY_ALWAYS_EAGER=True ,但它似乎不起作用。 所以我決定將override_settings裝飾器應用於看起來像這樣的特定測試

@override_settings(CELERY_ALWAYS_EAGER=True, BROKER_BACKEND='memory',
                       CELERY_EAGER_PROPAGATES_EXCEPTIONS=True)
def test_foo(self):
...

不幸的是,這個測試仍然在我的芹菜工作者中調用任務。 我可以缺少什么? 具體來說,我正在使用Django 1.10和Celery 4.0.0。

芹菜4.0配置參數已更改,

在測試中嘗試這些,

@override_settings(
    task_eager_propagates=True,
    task_always_eager=True,
    broker_url='memory://',
    backend='memory'
)

我遇到了同樣的問題,使用新的小寫名稱進行測試以及默認的芹菜設置。

這是原始設置圖的新設置,
http://docs.celeryproject.org/en/latest/userguide/configuration.html#new-lowercase-settings

芹菜設置更改信息:
http://docs.celeryproject.org/en/latest/whatsnew-4.0.html#lowercase-setting-names

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM