Вики-страница (https://github.com/hzwy23/asofdate-etl/wiki)
Национальный код-облако, адрес управления (https://gitee.com/hzwy23/asofdate4etl)
Адрес управления на GitHub (https://github.com/asofdate/batch-scheduler)
«Я не очень хорошо владею Java, поэтому прошу вас помочь мне с ошибками и нестандартными моментами в проекте. Буду очень признателен за вашу помощь».
Независимое развёртывание диспетчера задач (https://github.com/hzwy23/task-executor)
Веб-сайт инициирует задачу планирования, которая будет запускать пакетные задачи через интерфейс вызова диспетчера задач Feign.
В этом проекте используется Consul в качестве регистрационного центра. Если вам нужно использовать Eureka, вы можете изменить pom-файл и переключить регистрационный центр на Eureka.
JDK1.8
Если JDK — 1.9, добавьте следующее в файл pom.xml:
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.0</version>
</dependency>
Это корпоративная система пакетного планирования, основанная на зрелой платформе Spring и предоставляющая услуги планирования ETL. Часть управления правами использует проект hauth (https://github.com/asofdate/hauth-java).
Проект batch-schduler отличается от обычных систем планирования задач тем, что его цель — решать задачи планирования больших объёмов данных, которые зависят друг от друга, а не просто выполнять задачи по расписанию. Поэтому между batch-scheduler и обычными системами планирования задач есть некоторые различия.
Пакет Группа задач Информация о задаче
Пакет содержит группу задач, группа задач содержит информацию о задаче.
В пакете несколько групп задач должны быть связаны зависимостями, иначе они будут выполняться параллельно.
Несколько задач в группе задач также должны быть связаны зависимостями, чтобы избежать параллельного выполнения.
ETL-система планирования имеет минимальную единицу планирования — задачу. Задача может быть следующих типов:
> Хранимые процедуры базы данных (реализованы, модульные тесты пройдены, успешно)
> Скрипт оболочки (реализован, модульный тест пройден, успешно)
> Сценарий пакетной обработки CMD (реализован, модульный тест пройден, успешно)
> Двоичный исполняемый файл (реализован, не протестирован)
> Исполняемый JAR-файл (реализован, не протестирован)
Задача находится над группой задач. Группа задач — это пакет задач. Одна и та же задача может входить в группу задач несколько раз. В группе задач можно настроить зависимости между задачами, и ETL-планировщик будет выполнять задачи в соответствии с этими зависимостями.
Группа задач находится над пакетом. Один и тот же пакет может содержать несколько групп задач. Планировщик ETL будет анализировать зависимости между группами задач и выполнять их в соответствии с зависимостями.
Когда пакет запускается, планировщик сначала анализирует зависимости между группами задач в пакете. На основе зависимостей он находит самую верхнюю группу задач. Если существует несколько верхних групп задач, они запускаются одновременно.
После запуска группы задач планировщик анализирует зависимости задач внутри группы и выполняет самую верхнюю задачу. После завершения одной задачи автоматически запускается следующая задача.
Когда все задачи в группе выполнены, статус группы устанавливается как «завершён», и планировщик переходит к следующей группе задач, которую можно запустить.
Этот процесс продолжается до тех пор, пока все группы задач не будут завершены. Когда все задачи выполнены, планировщик завершает работу.
Обратите внимание: если одна из задач завершается неудачно, планировщик прекращает планирование этого пакета. Другие нормально выполняющиеся пакеты не затрагиваются.
Проект batch-scheduler использует управление зависимостями Maven, поэтому после клонирования проекта установите Maven. Maven автоматически загрузит зависимые пакеты.
Структура таблицы базы данных находится в каталоге проекта db mysql_init.sql. Чтобы импортировать её в базу данных MySQL, выполните следующую команду:
mysql -uroot -p dbname < mysql_init.sql
Замените dbname на имя вашей базы данных.
Файл конфигурации параметров Spring-Boot находится в application.properties. Пожалуйста, настройте его в соответствии со спецификациями Spring.
Порт по умолчанию для запуска — 8023.
После запуска проекта введите в браузере следующий URL: http://localhost:8023
Имя пользователя для входа: admin
Пароль: hzwy23
Имя пользователя: demo
Пароль: 123456
Чтобы скомпилировать проект, убедитесь, что у вас есть доступ к репозиторию Maven.
mvn clean package -DskipTests=true
Электронная почта: hzwy23@163.com
QQ-группа: 118183812
2019-02-28 Добавлен компонент Spring Cloud, отделена функция выполнения диспетчера, после отделения функции выполнения диспетчера от диспетчера выполнение диспетчера не зависит от веб-развёртывания, подходит для развёртывания Docker.
2018-12-28 Используется асинхронный механизм Spring (@Async) для реализации мониторинга состояния и выполнения задач.
2018-12-27 Версия Spring-Boot обновлена до 2.1.1, зависимость spring-batch удалена.
2017-11-02 Удалены sun.misc.BASE64Encoder и sun.misc.BASE64Decoder в проекте, заменены на Apache Commons Codec.
2017-09-12 Порт по умолчанию изменён на 8023, HTTPS отключён, используется протокол HTTP. Если требуется включить HTTPS, измените конфигурацию.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )