Ich verwende derzeit Sequelizeincrement()
函数来递增订单号值的列。例如:.increment("order_no", { by: 1 });
Gelegentlich kommt eine Anfrage innerhalb derselben Sekunde gleichzeitig bei meiner API an, was zu doppelten Bestellnummernwerten führt.
Gibt es eine Möglichkeit sicherzustellen, dass der inkrementelle Wert der Bestellnummer eindeutig ist? Muss ichincrement
in die Transaktion einschließen? Sollte ich nach dem Erstellen einer Bestellnummer stichprobenartig und regelmäßig prüfen, ob es Duplikate gibt? Ich bin mir nicht sicher, wie ich dieses Problem richtig lösen kann.
Laut der Dokumentation von Sequelize (https://sequelize.org/docs/v6/core-concepts/model-instances/#incrementing-and-decrementing-integer-values)
Um Parallelitätsprobleme zu vermeiden, bietet Sequelize Methoden zum Erhöhen und Dekrementieren von Instanzen, um den Wert der Instanz zu erhöhen/dekrementieren.
Obwohl es so aussieht, als ob diese Methode funktioniert, erhalten Sie bei der Verwendung dennoch doppelte Werte.
我认为如果出现重复的订单ID,你可以尝试捕获错误并重试操作,生成一个新的订单ID。