如何将celery作业的参数输入到要查询的数据库中; 使用mysql

Raj*_*123 10 python mysql celery celery-task

我使用MySql作为芹菜的结果后端.我也想在DB中存储程序参数.

例如:

add.apply_async(args=[num1, num2, user]
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我想在DB中存储用户参数,以便我可以稍后查询.

目前,我返回提供的参数,该参数存储在DB中.

def add(num1, num2, user):
    return [num1+num2, user]
Run Code Online (Sandbox Code Playgroud)

但是,当任务处于运行状态时,未插入用户,我无法在DB中查询它.这有什么解决方案/黑客吗?

Seá*_*yes 1

您只使用 MySql 作为结果后端,还是也将它用于队列(我不推荐)?如果您将其用于队列,则任务发送后参数应该立即存储在数据库中。否则,任务完成后才能存储任务结果。

如果您需要在任务运行时可查询参数,则需要在任务开始时手动将它们插入到数据库表中。如果您希望它们在任务开始之前可查询,则需要在调用之前将它们插入数据库表中apply_async