Встречается на собеседованиях • сегодня
Как в Django выполнять background job
Для выполнения фоновых задач в Django есть несколько популярных подходов:
- Celery - наиболее мощное решение для асинхронных задач. Требует брокера сообщений (RabbitMQ, Redis). Пример:
python
# tasks.py
from celery import shared_task
@shared_task
def send_email_task(user_id):
user = User.objects.get(id=user_id)
send_email(user.email, "Welcome!")- Django Background Tasks - более простое решение, хранит задачи в БД:
python
from background_task import background
@background(schedule=60)
def notify_user(user_id):
user = User.objects.get(id=user_id)
user.send_notification()- RQ (Redis Queue) - легковесная альтернатива Celery:
python
import django_rq
def send_report():
# generate report
return "Done"
django_rq.enqueue(send_report)Для простых задач можно использовать:
threading(не рекомендуется для прода)asyncio(Django 3.1+)- Планировщик
cron+ management commands
Выбор зависит от сложности задач, требований к масштабируемости и инфраструктуры. Celery - самый надежный вариант для продакшена.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы