Является ли плохой практикой запускать множество запросов с одной и той же транзакцией в параллельном режиме? - PullRequest
0 голосов
/ 11 июня 2019

Я выполнял много запросов к базе данных MySQL с одной и той же транзакцией, используя Promise.all (), поэтому все запросы выполняются параллельно, если что-то плохое произойдет, я откат транзакции.Но друг сказал, что параллельное выполнение запросов - плохая практика, потому что, если запрос не выполнен и транзакция откатывается, в MySQL все еще будут выполняться другие запросы, использующие ту же транзакцию, и если они не найдут транзакцию, они будут выдавать ошибкив самом MySQL.

Он предложил выполнить серию запросов, поэтому, если что-то случится, транзакция будет выполнена, и следующий запрос не будет выполнен.Я попытался найти некоторые доказательства этой проблемы, но не смог найти ни одного, или пропустил некоторые, если они существуют.

Надеюсь, кто-то может дать мне четкий ответ или ссылку и поблагодарить заранее.

1 Ответ

0 голосов
/ 11 июня 2019

Метод Promise.all (), как описано здесь ожидает разрешения всех обещаний, и если отклонено только одно из них, оно также будет отклонено.Итак, проблемы в следующем: 1. Все ли ваши методы передаются в promise.all (), возвращающие обещание, или они используют функции обратного вызова?2. Важно ли то, что один из этих методов запускается сначала?потому что promise.all () не заботится о том, в каком порядке они разрешают 3. Важно ли, чтобы количество методов, возвращаемых, отклонялось, так как обещание.Более того, если вы используете этот метод для MySQL и т. Д., Иногда ваш ORM может как-то с этим справиться, но отвергает.Так что я лично согласен с вашими друзьями, так как этот метод трудно контролировать, но, возможно, он найдет применение :)

PS: К счастью, другие участники помогут мне с другими моментами, которые я пропустил.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...