Django Save Occasionally Fails
У нас есть код, как показано ниже, и при выполнении process_something
иногда поля не обновляются после успешного выполнения process_something3
. Большую часть времени он работает нормально, но иногда он просто не обновляет все упомянутые поля в функциях
from django.db import models
class DjangoObject(models.Model):
field1 = models.PositiveSmallIntegerField()
field2 = models.DateField()
field3 = models.PositiveSmallIntegerField()
def process_something(self):
# Do something here
self.save(update_fields=['field1'])
self.process_something2()
def process_something2(self):
# Do asynchronous process
self.process_something3()
def process_something3(self):
# Do another thing here
self.save(update_fields=['field2', 'field3'])
Насколько я знаю, это происходит только здесь, поэтому я подозреваю, что это вызвано состоянием гонки при сохранении на одном и том же объекте. Действительно ли это так или есть другая причина и как ее устранить?
Версия Django - 3.2.9
Версия Postgresql - psql (PostgreSQL) 12.7 (Ubuntu 12.7-0ubuntu0.20.04.1)
Асинхронный процесс с использованием [django-rq](https://github.com/rq/django-rq)