我有一个运行celery作为工作人员后端的烧瓶应用程序。
我通过烧瓶加载我的配置变量,然后将它们交给芹菜,就可以了。
flask_app.config.from_object(config)
celery.conf.update(flask_app.config)
我的应用程序中有一个选项可以更新设置,该设置也需要在运行时应用于芹菜,我的尝试似乎都没有永久保存配置。 Here is the documention
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中正确更新,但是在进行新任务时,配置仍然是原始值,而不是新值。
我无法在线找到有关此问题的任何信息,朝正确方向的任何帮助或指示都将有所帮助。
答案 0 :(得分:0)
来晚了一点,希望对您有帮助
如果没有太多要更新的新设置,请尝试直接修改它们
current_app.conf.broker_url = new_settings["BROKER_URL"]
current_app.conf.result_backend = new_settings["CELERY_RESULT_BACKEND"]
或者基于我的纯粹猜测,您在flask_app.config
中有一些不匹配的命名
Celery在版本4中将某些设置名称更改为小写,请参见here