Раздел 45 · Python backend: Тарбадель

Async Django и фоновые задачи: async ORM, django.tasks и on_commit

middle-senior~30 мин

без входаВойди, чтобы отмечать прогресс, вести заметки и решать задачи в редакторе. войти

Вечер, Мост гудит. Редактор жмёт «Опубликовать», и кнопка думает четыре секунды. Потом пять. Кельса открывает журнал почтового сервера: каждое письмо подписчикам уходит прямо в ответе на публикацию, и почта Моста по вечерам отвечает медленно.

Квот и Кельса говорят о двух разных вещах, и обе есть в этом уроке. Async-представление помогает, когда запрос ждёт ввода-вывода и за время ожидания процесс мог бы обслужить других. Фоновая задача помогает, когда работу вообще не нужно делать в ответе: ответить сразу, а письмо отправить потом. И у фоновой задачи есть своя ловушка: «потом» должно наступить только после фиксации транзакции. Сегодня ты сделаешь ленту блога асинхронной, вынесешь письмо в задачу django.tasks и привяжешь её к фиксации через on_commit.

урок из курса

Урок из курса «Python backend: Тарбадель». Курс покупается один раз и остаётся навсегда: 500 ₽.

Оплата пока не подключена: премиум и курсы открываются промокодом.