¿Cómo planificar de manera eficiente 100 trabajos mediante cron?

¿Cómo planificar de manera eficiente 100 trabajos mediante cron?

Estoy programando arañas implementadas mediante scrapy con cron. Cada araña una línea. Ahora, con 100 arañas, esto resulta bastante difícil de planificar y gestionar. ¿Cuál es la forma recomendada de gestionar una gran cantidad de trabajos? Analizar el posible tiempo de mantenimiento necesario para pausar/reanudar trabajos, entre otras cosas, como trabajos superpuestos, etc.

Respuesta1

No uses cron

Si sus necesidades son complejas, podría considerar el uso de un producto más avanzado que esté diseñado para ejecutar programaciones complejas (distribuidas en múltiples servidores) y que admita activadores, dependencias de trabajos, manejo de errores, reintentos y monitoreo de reintentos, etc. La jerga de la industria sería "empresarial". "programación de trabajoy/o "automatización de la carga de trabajo".

Respuesta2

Si necesita programar CUÁNDO se ejecutará la tarea, no CON QUÉ FRECUENCIA, puede seguir usando cron. Para evitar ejecuciones cruzadas de tareas, puede dejar que cron ejecute solo un script corto que agregue la tarea a algún tipo de cola (redis, Rabbitmq, base de datos SQL) y dejar que otro script consuma esa cola y ejecute las cargas de trabajo de forma secuencial o con concurrencia limitada. Por supuesto, esto trae consigo otra categoría de problemas, como cómo manejar cargas de trabajo atascadas que impiden que las demás se ejecuten :)

información relacionada