Я обычно использую django, а для операций с упорядоченным параллелизмом я использую следующий код
with transaction.atomic():
try:
player = Player.objects.select_for_update().get(
id=player.id,
player_online=False)
except:
return bad_response("Unknown error")
player.player_socket = socket_id
player.save()
# Even here it will wait until "with" finished
if player.extra_security:
print("Ask for password action")
else:
pass
Так что в этом коде я получаю игрока по критериям и в то время как код внутри "сaction.atomi c (): "Все остальные запросы будут ПОДОЖДАТЬ, не возвращаются с ошибкой.
Как воспроизвести такой поток в node_js + postgresql (или MongoDb)
Я обнаружил некоторые решения, но они не подходят, потому что, если объект заблокирован, они вернут ошибку (для mon go db)