node-orm-action: возможно ли выполнять транзакции в одном соединении mysql для всех клиентов?
В настоящее время я подключаюсь к БД только один раз, когда запускаю приложение узла, сразу после этого я загружаю все свои модели, и после этого мое приложение готово обрабатывать любые запросы через socket.io rpc.
Мне нужно добиться логики - что если клиент выполняет сложный запрос и если по крайней мере одна операция завершилась неудачно в цепочке - например - все запросы sql были выполнены успешно, но электронное письмо с новым паролем не было отправлено - откатите все и покажите ошибку.
Я спрашиваю, потому что я помню - в php, например, все процессы имеют разные соединения с БД, поэтому все преобразования независимы и не могут пересекаться, но для узла это всего лишь один процесс с асинхронными запросами, который теоретически может пересекаться. Это просто мое первое приложение на node.js.
Можно ли сделать с 1 mysql соединение для всех клиентов, или мне нужно подключиться к mysql, получить все модели из удаленного файла в каждом запросе в socket.io?
1 ответ
Я бы не рекомендовал делать все из одного подключения. Это общий шаблон в Node.js для подключения, запроса, отключения для каждого входящего запроса. Если вы используете пул запросов, это должно быть достаточно быстро для большинства случаев использования.