#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
параметра onapp.task
.2. не рекомендуется изменять имя задачи во время выполнения, поскольку celery хранит список зарегистрированных задач по имени и отклоняет задачи, которые не соответствуют этому списку.