Запуск нескольких заданий Spring Cloud в контейнере потока данных Spring Cloud на PCF

Я пытаюсь выполнить несколько заданий весенней облачной задачи в контейнере весеннего облачного потока данных на PCF. Эти задания читают необработанный файл из источника http, а затем анализируют его и записывают в mysql db. Эти задания написаны на простом java, а не с помощью пакета Spring. Я связал mysql db с контейнером scdf на PCF. Я считаю, что весенняя облачная задача будет использовать mysql db для хранения статуса выполнения этого статуса. Я хочу, чтобы фактические выходные записи также попадали в mysql.

Мой вопрос в том, как выходные записи для каждого из этих заданий будут храниться в mysql db? Будет ли он использовать разные схемы для каждой из этих задач парсера? Если нет, то как мне его настроить?

Пожалуйста, поделитесь своими мыслями, если вы столкнулись с таким сценарием.

Спасибо!

Ниланджан


person Nilanjan Roy    schedule 11.03.2017    source источник


Ответы (1)


Чтобы организовать задачи в SCDF, вам нужно будет предоставить СУБД, и похоже, что вы уже это сделали. Отношение репозиторий задач в основном используется для сохранения выполнения задач в качестве исторического представления, поэтому вы можете детализировать всю историю выполнения через графический интерфейс / оболочку.

Вы бы настроили репозиторий задач на уровне сервера - см. manifest.yml образец (в services: разделе) для справки.

Мой вопрос в том, как выходные записи для каждого из этих заданий будут храниться в mysql db?

Если вы хотите также использовать одно и то же хранилище данных для всех задач, его можно настроить с помощью SPRING_CLOUD_DEPLOYER_CLOUDFOUNDRY_TASK_SERVICES env-var. Все, что передается через этот токен, будет автоматически распространяться на все приложения Task.

Однако вы обязаны убедиться, что правильный драйвер базы данных находится в пути к классам вашего приложения Task. В вашем случае вам понадобится один из драйверов mysql.

Будет ли он использовать разные схемы для каждой из этих задач парсера?

Это зависит от требований вашего бизнеса. Будь то другая схема или другой набор таблиц, вам нужно будет определить, что необходимо для ваших требований, и убедиться, что он существует / настроен, прежде чем связывать приложение Task через SPRING_CLOUD_DEPLOYER_CLOUDFOUNDRY_TASK_SERVICES.

Если нет, то как мне его настроить?

Если вам нужно использовать другой источник данных, вы можете предоставить другую mysql привязку для приложения Task, которая включает изменения схемы / таблицы для конкретных требований. Просмотрите этот раздел, чтобы узнайте, как автоконфигурация вступает в силу в PCF.

В качестве альтернативы вы также можете выборочно указать разные mysql привязки для каждого приложения - вот несколько документы по этому поводу.

person Sabby Anandan    schedule 11.03.2017
comment
Привет, Сабби, Большое спасибо за подробное объяснение. Я считаю, что свойство app.jdbc.spring.cloud.deployer.cloudfoundry.services = mysqlService также будет работать с командой запуска задачи. Насколько я понимаю, мне нужно создать службу mysql на PCF, и при запуске задачи я должен передать это свойство, которое связывает мою задачу с экземпляром mysql. Могу ли я передать это свойство при запуске задачи из DataFlowRestTemplate API? Спасибо ! - person Nilanjan Roy; 26.03.2017
comment
Только что я получил его из другого вашего сообщения: curl localhost: 9393 / tasks / deployments / foo \? arguments \ = \ & properties \ = -d. Если я использую DataFlowRestTemplate, как это установить? - person Nilanjan Roy; 26.03.2017