在运行时更新celery conf

时间:2018-09-24 19:12:45

标签: python python-3.x celery

我有一个运行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中正确更新,但是在进行新任务时,配置仍然是原始值,而不是新值。

我无法在线找到有关此问题的任何信息,朝正确方向的任何帮助或指示都将有所帮助。

1 个答案:

答案 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