Встречается на собеседованиях • сегодня

Каким образом работал с фоновыми задачами в Django

В Django для фоновых задач обычно используют Celery или Django Background Tasks.

Celery — мощный инструмент для асинхронных задач:

python
# settings.py
CELERY_BROKER_URL = 'redis://localhost:6379/0'

# tasks.py
from celery import shared_task

@shared_task
def send_email_task(user_id):
user = User.objects.get(id=user_id)
send_mail(...)

views.py

send_email_task.delay(user.id) # Асинхронный вызов

text

**Django Background Tasks** — проще, но менее масштабируем:  
```python
# tasks.py
from background_task import background

@background(schedule=10)
def process_data_task(data_id):
    Data.objects.filter(id=data_id).update(processed=True)

# views.py
process_data_task(data.id)  # Запуск в фоне

Выбор зависит от сложности:

  • Celery — для распределённых систем, Redis/RabbitMQ.
  • Background Tasks — для простых задач, работает через БД.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы