4 / 4 / 1
Регистрация: 20.12.2019
Сообщений: 310
|
||||||
Не работает транзакция22.01.2025, 16:38. Показов 782. Ответов 14
Добрый день! Случилась такая история. Есть код
0
|
22.01.2025, 16:38 | |
Ответы с готовыми решениями:
14
Не работает транзакция Не работает транзакция Не работает транзакция MySQL |
Native x86
![]() ![]() 6781 / 3716 / 1019
Регистрация: 13.02.2013
Сообщений: 11,695
|
|
22.01.2025, 19:26 | |
БД какая? Не все базы (и не все движки в некоторых базах) поддерживают транзакции.
0
|
Native x86
![]() ![]() 6781 / 3716 / 1019
Регистрация: 13.02.2013
Сообщений: 11,695
|
|||
23.01.2025, 17:57 | |||
В коде у вас все выглядит правильно, но проблема скорее всего в другом месте.
0
|
4 / 4 / 1
Регистрация: 20.12.2019
Сообщений: 310
|
|||||||||
23.01.2025, 18:12 [ТС] | |||||||||
Добавлено через 3 минуты
0
|
Невнимательный
![]() |
||||||||||||
23.01.2025, 18:32 | ||||||||||||
gena8208, как-то можно проверить влияет-ли ?
какое-то добавление, а потом скрипт просто завершает работу... без COMMIT/ROLLBACK изначально вроде так и было реализовано
Не по теме: Как вариант ещё попробовать COMMIT и ROLLBACK в функции где-то реализовать, и зарегистрировать её с
но тоже костыль, и передавать/получать кучу всего... объект pdo, перевменную какую насчёт всё-ли выполнено
1
|
![]() 3897 / 3235 / 1353
Регистрация: 01.08.2012
Сообщений: 10,899
|
|||
23.01.2025, 18:36 | |||
Условно, у юзера баланс 100 рублей. Запускается 2 транзакции, каждая на списание 70 рублей. Каждая видит, что у юзера баланс 100, исходя из этого оформляет покупку и обновляет баланс на 30р. В итоге оформилось 2 заказа суммарно на 140р, а у юзера списалось только 70. Для решения проблемы используем блокирующее чтение, т.е. SELECT ... FOR UPDATE. Думаю в вашем случае это вполне может быть оно, т.к. подвисает база, и после отвисания срабатывают сразу несколько транзакций, ожидающих выполнения.
1
|
4 / 4 / 1
Регистрация: 20.12.2019
Сообщений: 310
|
||||||
23.01.2025, 20:48 [ТС] | ||||||
Добавлено через 1 минуту Добавлено через 4 минуты
0
|
![]() 2485 / 1409 / 667
Регистрация: 23.08.2015
Сообщений: 3,558
|
|||
23.01.2025, 22:15 | |||
2) Операция должна быть идемпотентна. Чтоб если вы запускали несколько раз одну и туже операцию - в итоге получили один результат, как будто бы выполнили эту операцию один раз. Для этого и необходим ключ идемпотентности. У вас оба пункта не выполнены.
0
|
![]() 3897 / 3235 / 1353
Регистрация: 01.08.2012
Сообщений: 10,899
|
|||||
23.01.2025, 23:12 | |||||
0
|
4 / 4 / 1
Регистрация: 20.12.2019
Сообщений: 310
|
|||||||||||||
26.01.2025, 10:32 [ТС] | |||||||||||||
Добавлено через 31 секунду Добавлено через 5 минут Добавлено через 21 минуту Пример
0
|
Невнимательный
![]() |
||
26.01.2025, 11:10 | ||
Когда для пользователя выполняется скрипт, который открыл сессию, файл сессии блокируется , и открытия сессии, с таким-же сид, ожидают разблокирования ... по завершению первого, или по выполнению из него session_write_close() или подобного . Также частоту выполнения можно ограничить, сохранением и проверкой времени успешного выполнения, касательно выполнения какого-либо действия конкретно.
0
|
![]() 3897 / 3235 / 1353
Регистрация: 01.08.2012
Сообщений: 10,899
|
||||
26.01.2025, 13:44 | ||||
0
|
26.01.2025, 13:44 | |
Помогаю со студенческими работами здесь
15
транзакция Транзакция Транзакция
Транзакция Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
![]() |
||||
Angular: Вопросы и ответы на собеседовании
Reangularity 15.06.2025
Готовишься к техническому интервью по Angular? Я собрал самые распространенные вопросы, с которыми сталкиваются разработчики на собеседованиях в этом году. От базовых концепций до продвинутых. . .
|
Архитектура Onion в ASP.NET Core MVC
stackOverflow 15.06.2025
Что такое эта "луковая" архитектура? Термин предложил Джеффри Палермо (Jeffrey Palermo) в 2008 году, и с тех пор подход только набирал обороты. Суть проста - представьте себе лук с его. . .
|
Unity 4D
GameUnited 13.06.2025
Четырехмерное пространство. . . Звучит как что-то из научной фантастики, правда? Однако для меня, как разработчика со стажем в игровой индустрии, четвертое измерение давно перестало быть абстракцией из. . .
|
SSE (Server-Sent Events) в ASP.NET Core и .NET 10
UnmanagedCoder 13.06.2025
Кажется, Microsoft снова подкинула нам интересную фичу в новой версии фреймворка. Работая с превью . NET 10, я наткнулся на нативную поддержку Server-Sent Events (SSE) в ASP. NET Core Minimal APIs. Эта. . .
|
С днём независимости России!
Hrethgir 13.06.2025
Решил побеседовать, с утра праздничного дня, с LM о завоеваниях. То что она написала о народе, представителем которого я являюсь сам сначала возмутило меня, но дальше только смешило. Это чисто. . .
|
Лето вокруг.
kumehtar 13.06.2025
Лето вокруг.
Наполненное бурями и ураганами событий. На фоне магии Жизни, священной и вечной, неумелой рукой человека рисуется панорама душевного непокоя.
Странные серые краски проникают и. . .
|
Популярные LM модели ориентированы на увеличение затрат ресурсов пользователями сгенерированного кода (грязь -заслуги чистоплюев).
Hrethgir 12.06.2025
Вообще обратил внимание, что они генерируют код (впрочем так-же ориентированы разработчики чипов даже), чтобы пользователь их использующий уходил в тот или иной убыток. Это достаточно опытные модели,. . .
|
Топ10 библиотек C для квантовых вычислений
bytestream 12.06.2025
Квантовые вычисления - это та область, где теория встречается с практикой на границе наших знаний о физике. Пока большая часть шума вокруг квантовых компьютеров крутится вокруг языков высокого уровня. . .
|
Dispose и Finalize в C#
stackOverflow 12.06.2025
Работая с C# больше десяти лет, я снова и снова наблюдаю одну и ту же историю: разработчики наивно полагаются на сборщик мусора, как на волшебную палочку, которая решит все проблемы с памятью. Да,. . .
|
Повышаем производительность игры на Unity 6 с GPU Resident Drawer
GameUnited 11.06.2025
Недавно копался в новых фичах Unity 6 и наткнулся на GPU Resident Drawer - штуку, которая заставила меня присвистнуть от удивления. По сути, это внутренний механизм рендеринга, который автоматически. . .
|