es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo ocultar/ignorar tareas en el panel de control de Flower para Celery?

Contexto

Utilicé este tutorial para crear un límite de velocidad para mis tareas de celery que funciona en múltiples colas/empleados.
https://alievmagomed.com/celery-throttling-setting-rate-limit-for-queues/

Utiliza el concepto de un cubo de tokens. Una función crea tokens en una cola en un intervalo especificado. La tarea actual no puede ejecutarse si no hay un token disponible en el cubo. ¡Muy interesante!

Aquí está la tarea que crea los tokens:

@celery.task
def token():
    return 1</p>

<p>@celery.on<em>after</em>configure.connect
def setup<em>periodic</em>tasks(sender, **kwargs):
    # generando emisión automática de tokens para todos los grupos limitados
    for name, limit in rate<em>limits.items():
        sender.add</em>periodic<em>task(60 / limit, token.signature(queue=name+'</em>tokens'))

Problema

También uso Flower para monitorear las tareas de Celery. El problema es que la tarea que crea los tokens está contaminando todo el panel de control. Si, por ejemplo, tengo una cola que puede manejar 120 tareas por minuto, también veré 120 tareas de tokens completadas en mi panel de control.

Pregunta

¿Es posible ignorar una tarea específica en Flower? He buscado en la documentación e intentado manipular la tarea con format_task en flowerconfig.py, pero sin éxito hasta ahora.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Sí, es posible ignorar una tarea específica en Flower utilizando la opción ignore_tasks en el archivo de configuración de Flower.

    Puede especificar una lista de tareas que desea que Flower ignore agregando la siguiente línea a su archivo flowerconfig.py:

    options = {'ignore_tasks': ['nombre_tarea']}
    

    Reemplace nombre_tarea con el nombre de la tarea que desea ignorar.

    En su caso, puede agregar el nombre de la tarea token a la lista de tareas ignoradas:

    options = {'ignore_tasks': ['token']}
    

    Esto evitará que las tareas token aparezcan en el panel de Flower.

    Tenga en cuenta que en algunos casos puede ser necesario reiniciar Flower para que los cambios surtan efecto.

Comments are closed.