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 секунды до запуска этого скрипта.

Вернуться на верх