Как изменить имя задачи Celery во время выполнения

#python #python-3.x #celery #flower

#python #python-3.x #сельдерей #цветок

Вопрос:

Я хотел бы назвать свои задачи на основе аргументов, которые они получают. Приведенный ниже пример работает, но имя задачи пустое (по крайней мере, Flower его не отображает). Я хотел бы изменить его так, чтобы имя задачи основывалось на имени пользователя.

 @app.task
def synchronize_users():
    users = crud_user.get_all_active_users()
    for user in users:
        synchronize_user.apply_async(warehouse)


@app.task(serializer='pickle')
def synchronize_user(user):
    user.synchronize()
 

Комментарии:

1. Вероятно, это проблема с вашей конфигурацией flower. Но у всех классов celery есть имя, даже если оно не указано явно с помощью name параметра on app.task .

2. не рекомендуется изменять имя задачи во время выполнения, поскольку celery хранит список зарегистрированных задач по имени и отклоняет задачи, которые не соответствуют этому списку.