1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/dianjiu-job-plus-vue

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Task-Manage на основе Vue: последующий интерфейс управления (UI)

Vue-based Task Manage UI

Последующий интерфейс управления для Task-Manage, основанный на Vue.

VUE LICENSE star star

https://github.com/dianjiu/task-manage-vue

https://gitee.io/dianjiu/task-manage-vue

Связанный проект Task-Manage

Task-Manage лёгкий фреймворк для управления задачами

Лёгкий фреймворк для управления задачами, основанный на SpringBoot.

SpringBoot LICENSE star star

https://github.com/dianjiu/task-manage

https://gitee.io/dianjiu/task-manage

Функции проекта

  1. Архитектура в тренде: система использует SpringBoot+VUE для разделения переднего и заднего плана, передний план развёртывается отдельно, Nginx используется для балансировки нагрузки.
  2. Дружественный интерфейс: поддерживает как swagger2, так и knife4j для визуализации интерфейса API отладки, а также поддерживает автономные документы по интерфейсу.
  3. Управление задачами: позволяет управлять задачами через веб-страницу, обеспечивая визуальное управление и быстрое начало работы.
  4. Запись выполнения: позволяет просматривать результаты планирования, результаты выполнения и время следующего выполнения через веб-страницу в режиме реального времени.
  5. Журнал в реальном времени: позволяет просматривать полный журнал выполнения, выводимый исполнителем через веб-страницу в реальном времени.
  6. Уникальный поиск: позволяет выполнять глобальный уникальный поиск по jobname или jobgroup через веб-интерфейс.
  7. Настраиваемые параметры: позволяет настраивать типы запросов, пути запросов, параметры запросов и выражения Cron в режиме онлайн, с немедленным вступлением в силу.
  8. Динамическое управление: позволяет динамически изменять состояние задач, запускать/останавливать задачи и завершать выполнение задач в процессе, с немедленным вступлением в силу.
  9. Стратегии выполнения: поддерживает разнообразные стратегии выполнения, включая запросы Get, PostJson и PostFrom формы.
  10. Автоматическая регистрация: задачи регистрируются автоматически через определённые промежутки времени, также поддерживается ручная регистрация задач по расписанию.
  11. Автоматическое выполнение: система автоматически обнаруживает зарегистрированные задачи и запускает их выполнение, также поддерживаются ручные триггеры для немедленного выполнения.
  12. Управление пользователями: поддерживается онлайн-управление пользователями системы, ролями и меню, включая администраторов, разработчиков и обычных пользователей с тремя ролями.
  13. Контроль доступа: поддерживается контроль доступа в режиме онлайн, администраторы имеют полный доступ, разработчики имеют доступ ко всему, кроме управления ролями, обычные пользователи могут управлять только задачами.
  14. Кластерное развёртывание: поддерживается распределённое выполнение, система поддерживает кластерное развёртывание для обеспечения высокой доступности выполнения задач.
  15. Эластичное планирование: если машина в кластере выходит из строя или возвращается в работу, задачи будут перераспределены при следующем планировании.
  16. Стратегия маршрутизации: при кластерном развёртывании предоставляется разнообразная стратегия маршрутизации, включая циклический перебор, случайный выбор, переключение при отказе и переключение при перегрузке.
  17. Переключение при отказе: при выборе стратегии маршрутизации «переключение при отказе» в случае сбоя машины в кластере задача будет автоматически перенаправлена на другую работающую машину для отправки запроса на планирование.
  18. Стратегия блокировки: когда плотность планирования слишком высока и исполнитель не успевает обрабатывать задачи, доступны следующие стратегии: последовательное выполнение на одной машине (по умолчанию), отбрасывание последующих задач планирования и перекрытие предыдущих задач планирования.
  19. Тайм-аут: можно настроить тайм-аут для задач, и выполнение задачи будет прервано, если она превысит установленный лимит времени.
  20. Механизм повтора: можно настроить количество попыток для задач, и задача будет повторно выполнена в соответствии с установленным количеством попыток при неудачном выполнении.
  21. Фабрика сообщений: по умолчанию предоставляется механизм рассылки сообщений через электронную почту, при этом сохраняется возможность расширения для поддержки других способов рассылки, таких как SMS и DingTalk.
  22. Оповещение по электронной почте: при сбое задачи поддерживается отправка оповещений по электронной почте, и можно настроить несколько адресов электронной почты для групповой рассылки оповещений.
  23. Отчёт о выполнении: поддерживается просмотр данных о выполнении в реальном времени и отчётов о планировании, таких как распределение дат планирования и соотношение выполнения групп задач.
  24. Триггер событий: помимо планирования на основе Cron и зависимостей задач, предоставляются услуги API для запуска однократного выполнения задач.
  25. Задачи сценариев: поддерживается разработка и выполнение распределённых задач сценариев с использованием платформ, таких как GLUE, на основе распределённой среды разработки.
  26. Многопоточное выполнение: обеспечивается многопоточная обработка планирования для обеспечения точного выполнения без блокировок.
  27. Разделение потоков: потоки планирования разделены на изолированные пулы, медленные задачи автоматически направляются в пул «Slow», чтобы избежать перегрузки планировщика и повысить стабильность системы.
  28. Gradle: последняя стабильная версия будет отправлена в центральный репозиторий gradle для удобства использования пользователями.
  29. Maven: последняя стабильная версия будет отправлена в центральный репозиторий maven для удобства использования пользователями.
  30. Согласованность: на основе Redis обеспечивается окончательная согласованность распределённого планирования, и каждая задача планируется только один раз.
  31. Асинхронность: весь процесс планирования полностью асинхронизирован, включая асинхронное планирование, асинхронное выполнение и асинхронный обратный вызов, что эффективно снижает нагрузку на планирование и обеспечивает поддержку задач любой продолжительности.
  32. Межъязыковая поддержка: система предоставляет независимые от языка RESTFUL API-сервисы, позволяя третьим сторонам на любом языке интегрироваться с Task Manage.
  33. Интернационализация: задний план поддерживает настройку интернационализации, предоставляя китайский и английский языки, по умолчанию используется китайский язык.
  34. Контейнеризация: предоставляются официальные образы Docker, которые постоянно обновляются и публикуются на Dockerhub, обеспечивая удобство использования «из коробки».

Ход разработки

  • Архитектура в тренде: система использует SpringBoot+VUE для разделения переднего и заднего плана, передний план развёртывается отдельно, Nginx используется для балансировки нагрузки.
  • Дружественный интерфейс: поддерживается как swagger2, так и knife4j для визуализации интерфейса API отладки, а также поддерживается автономные документы по интерфейсу.
  • Управление задачами: управление задачами через веб-страницу обеспечивает визуальное управление и быстрое начало работы.
  • Запись выполнения: результаты планирования, результаты выполнения и время следующего выполнения можно просматривать через веб-страницу в режиме реального времени.
  • Журнал в реальном времени: полный журнал выполнения, выводимый исполнителем, можно просматривать через веб-страницу в реальном времени.
  • Уникальный поиск: глобальный уникальный поиск по jobname или jobgroup можно выполнять через веб-интерфейс.
  • Настраиваемые параметры: типы запросов, пути запросов, параметры запросов и выражения Cron можно настраивать в режиме онлайн с немедленным вступлением в силу.
  • Динамическое управление: состояние задач можно динамически изменять, запускать/останавливать и завершать задачи в процессе с немедленным вступлением в силу.
  • Стратегии выполнения: поддерживаются разнообразные стратегии выполнения, включая запросы Get, PostJson и PostFrom формы.
  • Автоматическая регистрация: задачи регистрируются автоматически через определённые промежутки времени, также поддерживается ручная регистрация задач по расписанию.
  • Автоматическое выполнение: система автоматически обнаруживает зарегистрированные задачи и запускает их выполнение, также поддерживаются ручные триггеры для немедленного выполнения. Сообщение фабрики:

По умолчанию предоставляется способ отправки сообщений с помощью почтовой фабрики. Одновременно зарезервирован расширяемый интерфейс, который позволяет удобно расширять способы отправки сообщений, такие как SMS и DingTalk.

[ ] Уведомления по электронной почте:

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

[ ] Отчёт о выполнении:

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

[x] Триггер события:

Помимо запуска задач способами «Cron» и «Зависимость от задачи», предоставляется API-сервис для однократного запуска задачи.

[ ] Скриптовые задачи:

Поддерживаются разработка и выполнение скриптовых задач на распределённой платформе GLUE, включая типы скриптов Shell, Python и NodeJS.

[ ] Многопоточная параллельная обработка:

Система поддерживает многопоточное планирование выполнения, обеспечивая точное выполнение без блокировки.

[ ] Изоляция и понижение приоритета:

Планировщик потоков разделяется и изолируется, медленные задачи автоматически понижаются до уровня «Slow» пула потоков, чтобы предотвратить истощение планировщика потоков и повысить стабильность системы.

[ ] Gradle:

Будет отправлена последняя стабильная версия в центральный репозиторий Gradle, что облегчит пользователям доступ и использование.

[ ] Maven:

Будет отправлена последняя стабильная версия в центральный репозиторий Maven, что облегчит пользователям доступ и использование.

[ ] Согласованность:

На основе распределённой блокировки Redis обеспечивается окончательная согласованность при распределённом планировании, и каждая задача планирования будет выполняться только один раз.

[ ] Полная асинхронность:

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

[x] Межъязыковая поддержка:

Предоставляются языконезависимые RESTFUL API-сервисы, позволяющие сторонним разработчикам подключаться к Task Manage на любом языке.

[x] Интернационализация:

В системе поддержки послепродажного обслуживания предусмотрена настройка интернационализации, доступны два языка на выбор: китайский и английский, по умолчанию используется китайский язык.

[ ] Контейнерная упаковка:

Предлагается официальный образ Docker, который постоянно обновляется и отправляется в Docker Hub, что позволяет продукту быть готовым к использованию сразу после распаковки.

Онлайн-демонстрация

http://task.dianjiu.org.cn (развёртывание в процессе...)

Тестовый аккаунт:
admin

Пароль: admin

Пользователь: user

Пароль: user

Проектные изображения

Страница демонстрации

Страница входа

Страница входа

Панель инструментов

Панель инструментов

Управление задачами =› список задач

Управление задачами =› список задач

Управление задачами =› журнал выполнения

Журнал выполнения

Управление задачами =› генератор (отключить cron-генератор)

Генератор (отключить cron-генератор)

Управление задачами =› Генератор (включить cron-генератор)

Генератор (включить cron-генератор)

Настройка сборки

# Клонировать проект
git clone https://github.com/dianjiu/task-manage-vue.git

# Перейти в каталог проекта
cd task-manage-vue

# Установить зависимости
yarn install

# Запустить сервис
yarn run dev

Доступ к браузеру http://localhost:9528

Публикация

# Построить тестовую среду
yarn run build:stage

# Создать производственную среду
yarn run build:prod

Прочее

# Предварительный просмотр эффекта публикации
yarn run preview

# Предварительный просмотр эффекта публикации + статический анализ ресурсов
yarn run preview -- --report

# Проверка формата кода
yarn run lint

# Исправление ошибок форматирования кода
yarn run lint -- --fix

Журнал обновлений

Адрес блога

Обновление журнала Task Manage

Рассуждения о распределённом идентификаторе Task Manage

Размышления о стратегии выполнения Task Manage

Заключительная благодарность

Спасибо за следующие проекты с открытым исходным кодом, которые послужили ориентиром для этого проекта:

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

На основе Vue: job-plus последующий этап UI. Развернуть Свернуть
Vue и 4 других языков
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/dianjiu-job-plus-vue.git
git@api.gitlife.ru:oschina-mirror/dianjiu-job-plus-vue.git
oschina-mirror
dianjiu-job-plus-vue
dianjiu-job-plus-vue
dev