У меня есть сервер Rails в кластере Kubernetes.Он использует бэкэнд Mysql.У нас есть класс, который делает что-то вроде:
- Создать объект базы данных
- Запустить задание восстановления, params = ID объекта базы данных
и задание
- Получить объект базы данных с идентификатором
- Сделать что-то с объектом.
Однако заданию не удается найти запись в базе данных!
Мы попытались исследовать проблему несколькими способами
- Мы добавили команду
sleep(1)
в задание, прежде чем оно ищет запись.Это решает проблему - Мы исследовали, была ли это проблема с кешем, однако очистка кеша не устранила проблему.
- Мы добавили ведение журнала: Мы зарегистрировали
DatabaseModel.last.id
в классе и на работе.В классе он вернул бы 1000
, а в работе он вернул бы 999
.то есть запись по какой-то причине еще не отражена в базе данных для работы.
Насколько я понимаю, на сервере есть только одна копия базы данных, поэтому я не понимаю, как это могло произойти.Это может быть немного досягаемо для того, чтобы кто-то мог помочь без большего контекста, но это стоит попробовать :)
спасибо