Настройка:
- Python-скрипт A вставляет данные в базу данных каждые 15 минут
- Python-скрипт B запрашивает несколько последних записей из базы данных каждые несколько минут
Оба используют ORM Django, работают на одном компьютере и используют локальную базу данных MySQL.
Проблема: B извлекает записи, за исключением самой последней, хотя A сохраняет ее * за 1023 * минуты раньше.
Я подозревал, что A не закрывает транзакцию, поэтому B видит базу данных без последней записи.Действительно, при проверке журналов MySQL я заметил, что commit
для каждого INSERT
происходит непосредственно перед next INSERT
.
Даже если он должен быть избыточным, я добавил @commit_on_success
декоратор для функции A , которая включает save()
, но это не помогло.
Как я могу заставить Django (или MySQL ?!) совершить коммит сразу после save()
?
ОБНОВЛЕНИЕ: Я обнаружил, что коммиты DO случаются - я ошибочно полагал, что они этого не делают, потому что Общий журнал запросов MySQL имеет разрешение 1 сек .В свете этой и другой новой информации я вновь задал вопрос здесь .