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)
所以完整的错误消息是
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 中相当长一段时间都是这样的。只要它有效,就坚持下去。不过,这只是我的意见。