Основывается на Spring Boot и представляет собой легковесную систему управления периодическими задачами.
https://github.com/dianjiu/job-plus
https://gitee.com/dianjiu/job-plus
Основывается на Vue.js и представляет собой UI для администрирования системы Job Plus.
https://github.com/dianjiu/job-plus-vue
https://gitee.com/dianjiu/job-plus-vue## Выбор технологий
Архитектурные тренды: система использует SpringBoot + Vue для разделения клиентской и серверной частей, фронтенд отдельно развёрнут, Nginx обеспечивает балансировку нагрузки.
Дружественные API: одновременно поддерживаются Swagger2 и Knife4j для визуализации и тестирования API, а также возможность работы с оффлайн документацией API.
Управление задачами: поддерживается CRUD операция над задачами через веб-интерфейс, визуальный интерфейс, быстрое освоение.
Журнал выполнения: поддерживается просмотр результатов планировщика, выполнения задач и времени следующего запуска через веб-интерфейс.
В реальном времени: поддерживается мониторинг полного журнала выполнения через веб-интерфейс.
Единый поиск: поддерживается глобальный уникальный поиск по jobname или jobgroup через веб-интерфейс.
Высокий уровень настройки: поддерживается онлайн конфигурация типов запросов, путей запросов, параметров запросов и выражений Cron, изменения сразу применяются.
Динамическое управление: поддерживается динамическое изменение состояния задач, запуск/остановка задач, а также завершение выполняющихся задач, изменения сразу применяются.
Политики выполнения: поддерживается множество политик выполнения, включая GET запросы, POST JSON запросы и POST формы. 10.Автоматическая регистрация: периодически автоматически регистрируются задачи, при этом можно вручную добавлять адреса задач.
Автоматическое выполнение: система автоматически распознаёт и запускает зарегистрированные задачи; при этом можно вручную запустить задачи немедленно.
Управление пользователями: поддерживается управление пользователями, ролями и меню через веб-интерфейс; доступны три роли по умолчанию: администратор, разработчик и обычный пользователь.
Контроль прав доступа: поддерживается онлайн контроль прав доступа; администратор имеет все права, разработчики имеют все права, кроме управления ролями, а обычные пользователи имеют права только для управления задачами.
Распределённое исполнение: поддерживается распределённое исполнение; система позволяет развёртывание в виде кластера, что гарантирует высокую доступность выполнения задач.
Эластичное расписание: при появлении новых машин или их выходе из строя, следующее расписание будет перераспределено.
Стратегия маршрутизации: система предоставляет множество стратегий маршрутизации при развёртывании в виде кластера, включая круговой метод, случайный выбор, перенаправление при отказе и перенаправление при занятости. 17.Перенаправление при отказе: если выбрана стратегия "перенаправление при отказе", то при отказе одной машины в кластере, задача будет перенаправлена на другую рабочую машину.
Стратегия блокировки: стратегия обработки при слишком частых запусках, включает последовательное выполнение на одном узле (по умолчанию), игнорирование последующих запусков и перезапись предыдущих запусков.
Управление временем ожидания: поддерживается настройка времени ожидания задач, задача будет прервана при превышении этого времени.
Механизм повторной попытки: поддерживается настройка количества повторных попыток задач, задача будет повторно запущена при неудаче в соответствии с настроенным количеством попыток. Фабрика сообщений: по умолчанию предоставляет способ отправки сообщений через фабрику электронной почты, при этом оставляются расширяемые интерфейсы для удобного добавления методов отправки SMS, DingTalk и других типов сообщений;22. Уведомление по электронной почте: в случае срабатывания задач поддерживается возможность отправки уведомлений по электронной почте, а также конфигурация нескольких адресов электронной почты для рассылки уведомлений;
Отчеты о выполнении: поддерживает реальное время отслеживание данных выполнения и создание отчетов о планировании, такие как график распределения дат планирования, график распределения выполнения групп задач и т.д.;
Триггер событий: помимо триггера задач через "cron" и "зависимости задач", предоставляется API для одноразового запуска задач;
Скриптовые задачи: поддерживает разработку и выполнение скриптовых задач на основе GLUE распределённой платформы, включая Shell, Python, NodeJS и другие типы скриптов;
Параллельное выполнение: система поддерживает параллельное выполнение задач через многопоточность, обеспечивая точное выполнение планирования и предотвращая заторы;
Деградация и изоляция: потоки планирования изолированы и разделены, медленные задачи автоматически понижаются до уровня "slow" потока, что предотвращает исчерпание потоков планирования и повышает стабильность системы;
Gradle: последняя стабильная версия будет публиковаться в центральном репозитории Gradle, что облегчит пользователям процесс интеграции и использования;29. Maven: последняя стабильная версия будет публиковаться в центральном репозитории Maven, что облегчит пользователям процесс интеграции и использования;
Однозначность: на основе Redis распределённых замков гарантируется конечная однозначность распределенного планирования, каждое планирование задачи вызывает только одно выполнение;
Полностью асинхронное выполнение: весь процесс планирования задач полностью асинхронизирован, включая асинхронное планирование, асинхронное выполнение и асинхронное обратное вызов, эффективно снижает нагрузку при плотном планировании, теоретически поддерживаются задачи любой продолжительности;
Кросс-платформенный подход: система предлагает язык-независимый RESTful API сервис, позволяющий сторонним разработчикам использовать любые языки программирования для интеграции с Task Manager;
Интернационализация: административная система поддерживает международные настройки, предлагая два варианта языка — китайский и английский, по умолчанию используется китайский;34. Контейнеризация: предоставляется официальный Docker образец, который постоянно обновляется и публикуется на DockerHub, что позволяет еще больше упростить использование продукта. ## Разработка прогресса
netstat -anp | grep 18080
.http://localhost:18080/index.html
для управления задачами через веб-интерфейс.## Онлайн-демонстрацияhttp://jobplus.dianjiu.org.cn (в процессе развертывания...)
Логин
Дашборд
Управление задачами => Список задач
Управление задачами => Журнал выполнения
Управление задачами => Генератор (выключен cron-генератор)
Управление задачами => Генератор (включен cron-генератор)
Таблица информации о задачах
Таблица журнала выполнения
Таблица информации об ошибках
Размышления над распределёнными ID в проекте Job Plus
Размышления над стратегиями выполнения в проекте Job Plus
Благодарю следующие открытые проекты за предоставленные примеры
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )