В моем приложении Django очень часто мне нужно сделать что-то похожее на get_or_create ()
. Например,
Пользователь отправляет тег. Нужно увидеть, если этот тег уже есть в базе данных. Если нет, создайте для него новую запись. Если это так, просто обновите существующие запись.
Но если заглянуть в документ для get_or_create ()
, похоже, что это небезопасно. Поток A проверяет и обнаруживает, что запись X не существует. Затем поток B проверяет и обнаруживает, что запись X не существует. Теперь и поток A, и поток B создадут новую запись X.
Это должна быть очень распространенная ситуация. Как мне справиться с этим безопасным способом?