0Pricing
Django Academy · Урок

Плановые задания с Celery Beat

Запускайте периодические задачи по расписанию

«Плановые задания с Celery Beat» — бесплатный урок Django Academy на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Django Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Django Academy содержит 4 уроков всего.

Части этого урока еще не переведены и отображаются на английском.

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-beat

Define 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 info

Avoid 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. 🗓️

Часто задаваемые вопросы

Урок «Плановые задания с Celery Beat» бесплатный?

Да — полный текст урока «Плановые задания с Celery Beat» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Django Academy, подпишись на CoddyKit PRO. Курс Django Academy содержит 4 уроков всего.

Чему я научусь в уроке «Плановые задания с Celery Beat»?

Запускайте периодические задачи по расписанию Ты практикуешь Django Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Django Academy?

Предыдущий опыт не требуется. Django Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.

Сколько времени занимает урок «Плановые задания с Celery Beat»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Django Academy?

Да. Каждый урок Django Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Зачем нужны фоновые задачи
  2. Настройка Celery с брокером
  3. Написание и вызов @shared_task
  4. Плановые задания с Celery Beat
← Назад к Django Academy