и посмотреть медиа
Web Page - Frontend Backend DevOps
и посмотреть медиа
Channel with materials on frontend, backend and DevOps in one place. Ideal for web developers.
Channel with materials on frontend, backend and DevOps in one place. Ideal for web developers.
The channel combines current information on frontend development, backend and DevOps. It publishes articles, tutorials and news for all stages of web development. Suitable for beginners and experienced specialists who want to stay up to date with trends.
Как защитить списание кредитов в Django от гонки запросов У аккаунта один кредит. Два запроса читают баланс до первого сохранения, оба проходят проверку и записывают ноль. Сервис принимает две генерации, хотя баланс не уходит в минус. Поэтому проверка на отрицательный баланс баг не ловит. В руководстве ошибку воспроизводят, затем закрывают транзакцией базы данных и блокировкой строки аккаунта. Проверку баланса, списание и запись принятого запроса объединяют в одну защищённую операцию. Пример работает на Django 5.2, Django REST Framework 3.16 и PostgreSQL 17. SQLite не подходит: он не реализует нужную блокировку строк. В разборе freeCodeCamp есть настройка проекта и тест двух запросов, которые претендуют на последний кредит. Открывайте его перед ревью логики лимитов: найдите разрыв между чтением и записью, затем перенесите решение внутрь транзакции.
Открыть канал и посмотреть медиаOnly registered users can share their opinion.
Be the first to share your impression of this resource!