Python芹菜数据库结果存储指定表名



我目前正试图将Django web应用程序从python 2.7迁移到3.8,但在迁移过程中,我们希望运行蓝色/绿色设置,使两个环境的操作在某种程度上彼此独立。

我们使用芹菜执行任务,在Python 2.7中,我们将任务的结果存储在名为"celey_taskmeta"的数据库表中,目前我们的Python 3.8环境也尝试使用此表名称,但由于表DDL的差异而失败。

我们在芹菜文档中注意到,可以基于以下内容来控制它:https://docs.celeryproject.org/en/v4.4.6/userguide/configuration.html#database-表名

但似乎无法根据文档中给出的示例来实现这一点。例如,我们尝试指定;

results_backend = settings.CELERY_RESULT_DB_TABLE_NAMES

以及django设置中;

CELERY_RESULT_DB_TABLE_NAMES = { 'task': 'python38_taskmeta', 'group': 'python38_groupmeta', }

但我们仍然看到Celery使用了"celey_taskmeta"的表名,而且文档中关于这个参数似乎有点模糊,有人知道如何将这个设置提供给应用程序吗?

以下对我有效:

database_table_names = {
'task': 'myapp_taskmeta',
'group': 'myapp_groupmeta',
}

参考:链接

最新更新