fix: 优化safe_get_or_create以处理并发2
This commit is contained in:
parent
28c72e01b9
commit
446714bf00
|
@ -114,7 +114,7 @@ class BaseModel(models.Model):
|
||||||
@classmethod
|
@classmethod
|
||||||
def safe_get_or_create(cls, defaults=None, **kwargs):
|
def safe_get_or_create(cls, defaults=None, **kwargs):
|
||||||
defaults = defaults or {}
|
defaults = defaults or {}
|
||||||
|
|
||||||
with transaction.atomic():
|
with transaction.atomic():
|
||||||
try:
|
try:
|
||||||
ins = cls.objects.select_for_update().get(**kwargs)
|
ins = cls.objects.select_for_update().get(**kwargs)
|
||||||
|
@ -128,6 +128,7 @@ class BaseModel(models.Model):
|
||||||
except cls.DoesNotExist:
|
except cls.DoesNotExist:
|
||||||
pass
|
pass
|
||||||
raise
|
raise
|
||||||
|
return ins, True
|
||||||
|
|
||||||
def handle_parent(self):
|
def handle_parent(self):
|
||||||
pass
|
pass
|
||||||
|
|
Loading…
Reference in New Issue