Node.js + MySQL - обработка транзакций

Я создаю приложение на node.js, используя express и драйвер node-mysql. В моем приложении есть несколько случаев, когда мне нужно сделать серию вставок / обновлений базы данных. Я хочу, чтобы они были в транзакции, чтобы в случае сбоя второй или третьей вставки предыдущие вставки полностью откатывались.

В настоящее время я использую какое-то промежуточное программное обеспечение, которое выполняет START TRANSACTION при поступлении запроса. Если в процессе обработки запроса возникает какая-либо ошибка, я перехватываю эту ошибку и выполняю ROLLBACK . Если ошибок не возникает, я выполняю COMMIT перед отправкой ответа браузеру.

Однако теперь я обеспокоен тем, что это не сработает, когда к приложению одновременно обращаются несколько пользователей, поскольку MySQL выполняет принудительная фиксация, если другой запрос пытается начать свою транзакцию с START TRANSACTION ! В настоящее время я использую только один экземпляр узла и одно соединение MySQL для всех запросов.

Может ли кто-нибудь посоветовать мне, справедливы ли мои опасения, и как мне получить поддержку транзакций?

12
задан jeffreyveon 9 May 2011 в 17:30
поделиться