По порядку Middle Транзакции и блокировки обновлено
Порядок работы с данными в транзакции
Вопрос
Расставьте шаги безопасного изменения остатков в своей обработке по порядку.
Попробуйте сами
Расставьте шаги по порядку стрелками.
- 1Проверить достаточность и сформировать изменения
- 2Установить исключительную управляемую блокировку на нужные данные
- 3Прочитать остатки одним запросом
- 4Выполнить внешние вызовы и уведомления после фиксации
- 5ЗафиксироватьТранзакцию()
- 6Записать изменения
- 7НачатьТранзакцию()
Показать ответ и разбор
Коротко
Блокировка до чтения гарантирует, что прочитанное не изменится до записи. Внешние вызовы после фиксации не держат блокировки и не нуждаются в откате.
Правильный порядок
- 1НачатьТранзакцию()
- 2Установить исключительную управляемую блокировку на нужные данные
- 3Прочитать остатки одним запросом
- 4Проверить достаточность и сформировать изменения
- 5Записать изменения
- 6ЗафиксироватьТранзакцию()
- 7Выполнить внешние вызовы и уведомления после фиксации
Разбор
Блокировка до чтения гарантирует, что прочитанное не изменится до записи. Внешние вызовы после фиксации не держат блокировки и не нуждаются в откате.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.