Как использовать контейнер планировщика (cron) для выполнения команд в других контейнерах - PullRequest
0 голосов
/ 13 июня 2019

Я потратил немало времени на исследования и не нашел решения своей проблемы, с которым мне удобно.Мое приложение работает в докернизированной среде:

  1. один контейнер для базы данных ;
  2. один или несколько контейнеров для самого приложения ,Каждый контейнер содержит определенную версию приложения.

Это мультитенантное приложение, поэтому каждый клиент (или арендатор) может быть связан только с одной версией за раз (миграция должна обрабатываться для каждого клиента, но это не такрелевантный).

Проблема заключается в том, что я хотел бы иметь другой контейнер для обработки заданий по планированию, таких как отправка электронной почты, обработка некоторых данных и т. д. Планировщик затем будет выполнять команды в контейнерах приложения.Такие проекты, как Ofelia , обещают большое обещание, но я должен был бы знать контейнер, чтобы выполнить команду заранее.Это невозможно, потому что мне нужно перейти к контейнеру базы данных, чтобы выяснить, в какой версии находится клиент, чтобы выяснить, в каком контейнере должна выполняться команда.

Есть ли здесь инструмент, помогающий мне?Должен ли я как-то изменить структуру?Любые советы будут приветствоваться.

Спасибо.

1 Ответ

0 голосов
/ 14 июня 2019

Итак, ваш вопрос: вы хотите получить информацию о версии приложения в контейнере базы данных перед планированием заданий, верно? Я думаю, что это относится к бизнесу, а не к докеризированной среде, у вас могут быть способы решить проблему:

  1. Проверьте сеть, убедитесь, что сеть контейнера может соединяться друг с другом
  2. Я думаю, что база данных должна поддерживать функцию RPC, вы можете использовать ее для получения данных версии
  3. Вы можете использовать некоторые поддерживаемые RPC инструменты, такие как SSH
...