Ночью воркеры Кэш-рынка перезапускали ради новой версии. Утром у Деванны на экране заказ, за который покупатель нажал «оплатить» в 02:14. Задача ochered.charge в логе есть, строка received есть, а строки succeeded нет. И в очереди задачи тоже нет. Деньги не списаны, заказ висит неоплаченным, дрон не уехал.
В прошлом уроке Celery печатал чеки, и потерянный или лишний чек никого не волновал. С деньгами так нельзя. Сегодня разбираем, когда Celery подтверждает сообщение, почему доставка без потерь всегда означает «хотя бы один раз» и как сделать платёж, который переживает и смерть воркера, и повтор, и ответ шлюза, потерянный в сети. Это тот же разговор, что в уроке 193, где ты сам решал, когда звать XACK. Только у Celery решение уже принято за тебя, и не в твою пользу.
урок из курса
Урок из курса «Python backend: Тарбадель». Курс покупается один раз и остаётся навсегда: 500 ₽.
Оплата пока не подключена: премиум и курсы открываются промокодом.