0
0
Djangoframework~30 mins

Periodic tasks with Celery Beat in Django - Mini Project: Build & Apply

Choose your learning style9 modes available
Periodic tasks with Celery Beat
📖 Scenario: You are building a Django app that needs to perform a task regularly, like sending reminder emails every minute. To do this, you will use Celery with Celery Beat to schedule periodic tasks.
🎯 Goal: Create a Django project setup with Celery and Celery Beat. Define a simple periodic task that runs every minute and prints a message to the console.
📋 What You'll Learn
Create a Celery app instance in a file named celery.py inside your Django project directory.
Add a periodic task schedule in Celery Beat to run every minute.
Define a simple Celery task function called print_hello that prints 'Hello from Celery Beat!' to the console.
Configure Celery Beat in Django settings to enable periodic task scheduling.
💡 Why This Matters
🌍 Real World
Many web applications need to perform background jobs regularly, such as sending emails, cleaning up data, or updating caches. Celery Beat helps schedule these tasks easily.
💼 Career
Understanding how to set up periodic tasks with Celery Beat is valuable for backend developers working with Django to automate routine jobs efficiently.
Progress0 / 4 steps
1
Create Celery app instance
Create a file named celery.py in your Django project directory. Inside it, write code to create a Celery app instance called app with the project name 'myproject'. Import Django settings and configure Celery to use them.
Django
Need a hint?

Use Celery('myproject') to create the app. Set the environment variable for Django settings before creating the app.

2
Add Celery Beat schedule configuration
In your Django settings file, add a dictionary called CELERY_BEAT_SCHEDULE. Inside it, add a task named 'print-hello-every-minute' that runs the task 'myapp.tasks.print_hello' every 60 seconds.
Django
Need a hint?

Define CELERY_BEAT_SCHEDULE as a dictionary with the task name as key and a dictionary with task and schedule keys.

3
Define the periodic task function
In your Django app folder named myapp, create or edit the tasks.py file. Define a Celery task function called print_hello that prints the string 'Hello from Celery Beat!'. Use the @app.task decorator imported from the Celery app instance.
Django
Need a hint?

Import app from your Celery instance and decorate the function with @app.task.

4
Enable Celery Beat in Django settings
In your Django settings file, add django_celery_beat to the INSTALLED_APPS list to enable Celery Beat integration.
Django
Need a hint?

Add 'django_celery_beat' exactly to the INSTALLED_APPS list in settings.py.