Django MariaDB 10.2 db иногда не получает объект, используя потоки/rabbitmq
Я сделал веб-фронтенд на Django, который сохраняет объект, а затем подает сигнал другому приложению получить этот объект с помощью RabbitMQ. Бэкенд-приложение использует очередь для обработки входящего трафика RabbitMQ.
Иногда объект не извлекается из базы данных... рассмотрим этого работника в бэкенде:
def worker():
while True:
slug = q.get()
print(f'Working on {slug}')
i = 0
ost = None
while i < 3 and not ost:
print('getting ost for ' + slug)
try:
ost = Ost.objects.get(slug=slug)
except ObjectDoesNotExist:
pass
if not ost:
print('Sleeping 1')
time.sleep(1)
i += 1
if not ost:
#raise error
print('Start download')
q.task_done()
# turn-on the worker thread
print('running worker')
threading.Thread(target=worker, daemon=True).start()
В редких случаях выводится такой журнал:
Working on civilization-iii
getting ost for civilization-iii
Sleeping 1
getting ost for civilization-iii
Start download
Как возможно, что бд не может получить объект, но через секунду может?
Объект действительно находится в базе данных с самого начала, он имеет дату создания примерно за 4 секунды до запуска этого скрипта.