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