Утром покупатель Барахолки показывает на экране письмо: «Заказ №41 оплачен, 1899.00 кр.». Заказа №41 в базе нет. Его транзакция откатилась на ошибке формы оплаты, а задача на письмо к тому времени уже лежала в очереди.
В прошлом уроке оплата, письма и отчёт выстроились цепочками и пошли по расписанию. Но каждая цепочка начинается с того, что кто-то ставит задачу. Заказ при этом пишется в PostgreSQL, а задача в Redis, и общей транзакции у них нет. Сегодня разберём, что ломается в этой щели, и закроем её так, как закрывают в бою: сообщение пишется в ту же базу, что и заказ, а в очередь его переносит отдельный ретранслятор.
урок из курса
Урок из курса «Python backend: Тарбадель». Курс покупается один раз и остаётся навсегда: 500 ₽.
Оплата пока не подключена: премиум и курсы открываются промокодом.