0Pricing
Django Academy · 강의

Celery Beat로 예약 작업 실행

일정에 따라 주기적인 작업을 실행합니다

Celery Beat로 예약 작업 실행은(는) CoddyKit의 무료 Django Academy 강의입니다. 이것은 4개 중 4번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 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 AI 튜터), CoddyKit PRO로 업그레이드하면 Django Academy 강의 전체를 잠금 해제할 수 있습니다. Django Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“Celery Beat로 예약 작업 실행”에서 뭘 배우나요?

일정에 따라 주기적인 작업을 실행합니다 브라우저에서 직접 실행하는 실습 코드로 Django Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Django Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Django Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 4번째 강의입니다.

“Celery Beat로 예약 작업 실행” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Django Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Django Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 백그라운드 작업이 필요한 이유
  2. 브로커와 Celery 설정
  3. @shared_task 작성과 호출
  4. Celery Beat로 예약 작업 실행
← Django Academy(으)로 돌아가기