Заставить Django зафиксировать

Настройка:

  • Сценарий Python A вставляет данные в базу данных каждые 15 минут
  • Сценарий Python B каждые несколько минут запрашивает несколько последних записей из базы данных

Оба используют ORM Django, работают на одной машине и используют локальную базу данных MySQL.

] Проблема:
B выбирает записи, кроме самой последней, хотя A сохраняет их на минут ранее.

Я подозревал, что A не закрывает транзакцию, поэтому B видит базу данных без последней записи. Действительно, изучая журналы MySQL, я заметил, что фиксация для каждого INSERT происходит прямо перед следующим INSERT .

Хотя это должно было быть быть избыточным, я добавил декоратор @commit_on_success к функции A , которая включает save () , но это не помогло.

Как я могу заставить Django (или MySQL ?!) для фиксации сразу после save () ?

ОБНОВЛЕНИЕ:
Я обнаружил, что коммиты ДЕЙСТВУЮТ происходят - меня обманули, чтобы не делайте этого, потому что Общий журнал запросов MySQL имеет разрешение только 1 секунду .
В свете этой и другой новой информации я повторно задал вопрос здесь .

8
задан Peter Mortensen 12 July 2019 в 10:12
поделиться