CELERY_IMPORTS、CELERY_RESULT_BACKEND 已弃用。如何使用替代方案?

Lug*_*öör 5 python deprecated celery

在 celery 5.0.2 中设置 celery 的配置时

CELERY_BROKER_URL='amqp://localhost',
CELERY_IMPORTS=('my_tasks', 'callbacks'),
CELERY_RESULT_BACKEND='rpc://')
Run Code Online (Sandbox Code Playgroud)

CELERY_IMPORTS已弃用的有关和CELERY_RESULT_BACKEND使用的警告

alternative=f'Use the {_TO_NEW_KEY[setting]} instead')在6.0.0版本中出现。

谁能解释一下这是什么意思吗?

小智 7

只需运行这个命令

celery upgrade settings path/to/settings.py
Run Code Online (Sandbox Code Playgroud)

设置文件应该是您添加芹菜设置的位置

这会自动更新以下内容

CELERY_ACCEPT_CONTENT = ['**']
CELERY_BROKER_URL = "**"
CELERY_TIMEZONE = "**"
CELERY_RESULT_BACKEND = "**"
Run Code Online (Sandbox Code Playgroud)

对此

accept_content = ['**']
CELERY_broker_url = "**"
timezone = "**"
result_backend = "**"
Run Code Online (Sandbox Code Playgroud)


Tom*_*cik 0

所以完整的错误消息是

    The 'CELERY_RESULT_BACKEND' setting is deprecated and scheduled for removal in
    version 6.0.0. Use the result_backend instead
Run Code Online (Sandbox Code Playgroud)

4.0开始建议更换CELERY_RESULT_BACKEND为。result_backend

4.0 版引入了新的小写设置和设置组织。

因此,我们可能必须更改在工作线程中导入设置的方式。

它曾经是

app.config_from_object('django.conf:settings', namespace='CELERY')
Run Code Online (Sandbox Code Playgroud)

我们可能会使用

app.config_from_object('django.conf:settings')
Run Code Online (Sandbox Code Playgroud)

并在设置中

result_backend='rpc://'
Run Code Online (Sandbox Code Playgroud)

运行这个命令

celery upgrade settings --django
Run Code Online (Sandbox Code Playgroud)

应该自己进行必要的更改,尽管它可能需要一些改进,因为 GH 上有一张票。


Celery 有很多变化的部分,所以我最好等到 6.0 发布后再进行所有必要的更改。使用 celery 设置的方式在 Django 中相当长一段时间都是这样的。只要它有效,就坚持下去。不过,这只是我的意见。