Como agregar Cron Jobs en Django

Tareas programadas

¡Suscríbete al feed!

Anteriormente usaba WordPress, Joomla u otros CMS para gestionar el contenido de mi blog. Una tarea muy interesante es el hecho de poder automatizar tareas, como la publicación de tus post, por ejemplo.

¿Qué es un Cron Job?

Los cron job son tareas que puedes programar para que se realicen cada cierto tiempo, anteriormente te mencione un ejemplo sencillo como la publicación de un post, pero también puedes programar por ejemplo, envío de facturas, avisos de vencimiento, etc.

¿Cómo se programa una tarea?

Antes de continuar debes entender que puedes configurar:

  1. Minutos (0 - 59)
  2. Horas (0 - 23)
  3. Días del mes (1 - 31)
  4. Meses (1 - 12)
  5. Días de la semana (0 - 6)

Una tarea cron puede ser programada por ejemplo:

* * * * *

Escribiendola de este modo, se ejecutará cada minuto.

No soy experto en el tema de las tareas programadas, por lo cual si quieres profuncizar un poco en el tema te recomiendo que hagas una búsqueda más profunda en San Google.

Al tener conocimientos básicos de como funciona, regularmente uso Crontab Guru para generar los tiempos de las tareas que voy a prgramar. Si no sabés como, te la recomiendo.

¿Pero cómo implemento las tareas cron en Django?

1. Ejecutas tu ambiente de desarrollo en Django y procederemos a instalar "django-crontab"

pip install django-crontab

2. Agregas django-crontab a tus aplicaciones instaladas (INSTALLED_APPS) en tu archivo settings.py


INSTALLED_APPS = [
    # ....
    'django_crontab',
]

3. Creas un archivo llamado cron.py en el app donde necesitas crear las funciones programadas ej. "miapp/cron.py", posteriormente creas la funcion que vas a ejecutar


def mi_funcion():
    # Aquí va tu funcion

4. En tu archivo settings.py agregas la siguiente línea (cambia los asteriscos por tus tiempos programados)


CRONJOBS = [
    ('* * * * *', 'miapp.cron.mi_funcion')
]

"miapp", es el nombre de tu aplicación,  "cron", es el nombre del archivo que creaste en el paso anterior (cron.py) y "mi_funcion", es el nombre de la funcion que vas a ejecutar

5. Ejecutando el siguiente comando, se escribirán las acciones necesarias para ejecutar tu tarea en el tiempo programado

python manage.py crontab add

6. Si deseas ver todas las tareas programadas puedes usar el siguiente comando:

python manage.py crontab show

7. Si en algun momento deseas eliminar las tareas creadas usa el siguiente comando:

python manage.py crontab remove

Eso es todo, espero haberte ayudado.

Jeremías Enríquez | Hace 5 meses, 1 semana

Tags: Snippets , Tutoriales , Django