Tareas programadas con Celery Beat
Ejecute tareas periódicas según un calendario
Tareas programadas con Celery Beat es una lección gratuita de Django Academy en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Django Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Django Academy incluye 4 lecciones en total.
Partes de esta lección aún no han sido traducidas y se muestran en inglés.
Beyond One-Off Tasks
So far tasks run when you queue them. But some jobs should run on a clock: nightly reports, hourly cleanups, weekly digests. That is where Beat comes in. ⏰
What Celery Beat Is
Celery Beat is a scheduler. It is a separate process that wakes up on time and drops scheduled tasks onto the same queue your workers read.
Beat Plus Worker
Beat only queues jobs on schedule; it never runs them itself. You still need a worker running to actually execute what Beat enqueues.
Install the Scheduler
The django-celery-beat package stores your schedule in the database, so you can even edit it from the admin later. Install it first.
pip install django-celery-beatDefine a Beat Schedule
In settings, CELERY_BEAT_SCHEDULE is a dict mapping a name to a task path and how often to run it.
CELERY_BEAT_SCHEDULE = {
"daily-report": {
"task": "reports.tasks.send_report",
"schedule": 86400.0,
},
}Intervals in Seconds
A plain number means "every N seconds". So 86400.0 is once a day and 3600.0 is once an hour. Simple, but a bit rigid for real calendars.
Crontab for Real Calendars
For "8am every Monday" use a crontab schedule. It reads like a cron line and handles days, hours, and minutes precisely.
from celery.schedules import crontab
schedule = crontab(hour=8, minute=0, day_of_week=1)Wire Crontab In
Drop a crontab object straight into the schedule value to control exactly when a task fires.
"weekly-digest": {
"task": "news.tasks.digest",
"schedule": crontab(hour=8, minute=0, day_of_week="mon"),
}Run the Beat Process
Start Beat in its own terminal, beside the worker. Now you have three processes: web server, worker, and the beat scheduler.
celery -A myproject beat -l infoAvoid Duplicate Beats
Run only one Beat process. Two schedulers means every job fires twice, which can double-send emails or double-bill users. 🚫
Edit Schedules from Admin
With django-celery-beat, schedules live in the database, so non-developers can add or pause periodic tasks right from the Django admin.
Quick Check
What is the relationship between Celery Beat and the worker?
Recap: Scheduled Jobs
Celery Beat queues tasks on a schedule using intervals or crontab. Run exactly one Beat plus a worker, and edit schedules from the admin. 🗓️
Preguntas frecuentes
¿La lección «Tareas programadas con Celery Beat» es gratis?
Sí — el texto completo de «Tareas programadas con Celery Beat» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Django Academy, actualiza a CoddyKit PRO. El curso de Django Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Tareas programadas con Celery Beat»?
Ejecute tareas periódicas según un calendario Practicas Django Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Django Academy?
No se requiere experiencia previa. Django Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.
¿Cuánto tiempo toma la lección «Tareas programadas con Celery Beat»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Django Academy?
Sí. Cada lección de Django Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Por qué necesita tareas en segundo plano
- Configuración de Celery con un broker
- Escritura y llamada de @shared_task
- Tareas programadas con Celery Beat