Сервер Rails в Kubernetes: Resque Job с использованием устаревшей базы данных - PullRequest
0 голосов
/ 10 июля 2019

У меня есть сервер Rails в кластере Kubernetes.Он использует бэкэнд Mysql.У нас есть класс, который делает что-то вроде:

  1. Создать объект базы данных
  2. Запустить задание восстановления, params = ID объекта базы данных

и задание

  1. Получить объект базы данных с идентификатором
  2. Сделать что-то с объектом.

Однако заданию не удается найти запись в базе данных!

Мы попытались исследовать проблему несколькими способами

  1. Мы добавили команду sleep(1) в задание, прежде чем оно ищет запись.Это решает проблему
  2. Мы исследовали, была ли это проблема с кешем, однако очистка кеша не устранила проблему.
  3. Мы добавили ведение журнала: Мы зарегистрировали DatabaseModel.last.id в классе и на работе.В классе он вернул бы 1000, а в работе он вернул бы 999.то есть запись по какой-то причине еще не отражена в базе данных для работы.

Насколько я понимаю, на сервере есть только одна копия базы данных, поэтому я не понимаю, как это могло произойти.Это может быть немного досягаемо для того, чтобы кто-то мог помочь без большего контекста, но это стоит попробовать :)

спасибо

...