我有一个以芹菜作为工人后端运行的烧瓶应用程序。
我通过烧瓶加载我的配置变量并将它们交给芹菜,效果很好。
flask_app.config.from_object(config)
celery.conf.update(flask_app.config)
我的应用程序中有一个选项可以更新设置,该设置也需要在运行时应用于芹菜,我的尝试似乎都没有永久保存配置。这是文档
from celery import current_app
current_app.conf.update(new_settings)
或
from celery import current_app
current_app.conf['SOME_SETTING'] = new_settings['SOME_SETTING']
在两次尝试中,"SOME_SETTING"在更新任务期间在current_app中正确更新,但是当创建新任务时,配置仍然是原始值而不是新值。
我在网上找不到有关此问题的任何内容,任何正确方向的帮助或指示都会有所帮助。
来得有点晚,希望这仍然有帮助
如果没有太多要更新的新设置,请尝试直接修改它们
current_app.conf.broker_url = new_settings["BROKER_URL"]
current_app.conf.result_backend = new_settings["CELERY_RESULT_BACKEND"]
或者根据我的纯粹猜测,您在flask_app.config
中有一些不匹配的命名
芹菜在版本 4 中将一些设置名称更改为小写,请参阅此处