script raspberry every python django celery

every - crontab raspberry pi python



Colas de tareas distribuidas(Ej. Apio) vs scripts crontab (1)

Depende de lo que desee que hagan sus tareas, si necesita distribuirlas y cómo desea administrarlas.

Un crontab es capaz de ejecutar un script cada N intervalos. Se ejecuta y luego regresa. Esencialmente obtienes una sola ejecución en cada intervalo. Podrías dirigir un crontab para ejecutar un comando de administración de django y obtener acceso a todo el entorno de django, por lo que el apio realmente no te ayuda allí.

Lo que el apio trae a la mesa, con la ayuda de una cola de mensajes, son las tareas distribuidas. Muchos servidores pueden unirse al grupo de trabajadores y cada uno recibe un elemento de trabajo sin temor a un doble manejo. También es posible ejecutar una tarea tan pronto como esté lista. Con cron, estás limitado a un mínimo de un minuto.

Como ejemplo, imagina que acabas de lanzar una nueva aplicación web y recibes cientos de registros que requieren que se envíe un correo electrónico a cada usuario. Enviar un correo electrónico puede llevar mucho tiempo (comparativamente), por lo que decide manejar los correos electrónicos de activación a través de tareas.

Si estuvieras usando cron, necesitarías asegurarte de que cada cron cron sea capaz de procesar todos los correos electrónicos que necesitan ser enviados. Si tiene varios servidores, ahora necesita asegurarse de no enviar múltiples correos electrónicos de activación al mismo usuario, necesita algún tipo de sincronización.

Con el apio, agrega una tarea a la cola. Puede tener varios trabajadores por servidor, por lo que ya ha escalado antes de un cronjob. También puede tener varios servidores que le permiten escalar aún más. La sincronización se maneja como parte de la ''cola''.

Puede utilizar el apio como reemplazo cron, pero ese no es realmente su uso principal. Se utiliza para cultivar tareas asincrónicas en un clúster distribuido.

Y, por supuesto, el apio tiene una gran lista de funciones que cron no tiene.

Tengo problemas para entender el propósito de las "colas de tareas distribuidas". Por ejemplo, la biblioteca de apio de pitón.

Sé que en el apio, el marco python, puede configurar ventanas temporizadas para que las funciones se ejecuten. Sin embargo, eso también se puede hacer fácilmente en un crontab de linux dirigido a un script de python.

Y hasta donde yo sé, y que se muestra en mis propias aplicaciones de django-apio, el apio consume mucha más memoria RAM que simplemente configurar un crontab sin procesar. Pocos cientos de MB de diferencia para una aplicación relativamente pequeña.

¿Puede alguien ayudarme con esta distinción? Quizás también sea agradable una explicación de alto nivel sobre cómo funcionan las colas de tareas / crontabs en general.

Gracias.