PPGo_Job: система управления задачами
1. Описание
PPGo_Job — это лёгкая система управления задачами, разработанная на языке Go. Она проста в развёртывании и использовании, потребляет мало ресурсов и обеспечивает стабильную работу.
Система PPGo_Job поддерживает визуализацию задач, управление с несколькими пользователями и правами доступа, а также высокую параллельность выполнения задач. Она позволяет управлять задачами на нескольких серверах одновременно.
С момента выпуска версии 1.0 система получила поддержку и признание от многих технических специалистов. Она уже используется в производственных средах различных компаний и продолжает совершенствоваться. На данный момент выпущено более 20 версий, из которых 9 являются стабильными (они выпускаются после успешного развёртывания в производственной среде).
Код системы доступен на кодовых хостингах Code Cloud и GitHub. Документация доступна по указанным ссылкам.
2. Архитектура
На рисунке представлена архитектура системы.
Рисунок: архитектура системы PPGo_Job
На другом рисунке показана архитектура сервера.
Рисунок: архитектура сервера системы PPGo_Job
3. Особенности
В версии V2.x были добавлены следующие функции и возможности:
Использование PPGo_Job позволяет эффективно управлять задачами и экономить время.
4. Поддержка
Для поддержки проекта можно выполнить следующие действия:
Также представлены скриншоты интерфейса системы, которые демонстрируют её функциональность.
5. Установка
Существует два метода установки системы: компиляция и использование готовых пакетов.
Метод компиляции включает следующие шаги:
Для разных операционных систем предусмотрены соответствующие команды сборки и запуска.
Второй метод предполагает использование готовых пакетов, доступных для скачивания на сайте проекта. Для каждой операционной системы есть свой пакет. После загрузки пакета необходимо настроить базу данных и файл конфигурации, как описано выше. Затем можно запустить программу с помощью соответствующих команд.
Перед запуском программы необходимо установить необходимые зависимости, такие как MySQL, если они не установлены на вашем компьютере.
После установки программы можно получить доступ к её интерфейсу через веб-браузер по адресу http://your_host:8080. Имя пользователя — admin, пароль — 123456.
Конфигурационный файл содержит информацию о базе данных, порте и других параметрах системы. Пример конфигурационного файла приведён ниже.
appname = PPGo_Job2
httpport = 8080
runmode = dev
version= V2.2
# 允许同时运行的任务数
jobs.pool = 1000
# 站点名称
site.name = 定时任务管理器
#通知方式 0=邮件,1=信息,2=钉钉,3=微信
notify.type = 0
# 数据库配置
db.host = 127.0.0.1
db.user = root
db.password = "123456"
db.port = 3306
db.name = ppgo_job2
db.prefix = pp_
db.timezone = Asia/Shanghai
# 邮件通知配置
email.host = smtp.mxhichina.com
email.port = 25
email.from = ci@xxx.cn
email.user = ci@xxx.cn
email.password = "xxxxxx"
email.pool = 10
# 短信通知方式配置
msg.url = http://chanxiyou.com/api/tools/send_sms
msg.pool = 10
# 钉钉通知配置
dingtalk.url = "https://oapi.dingtalk.com/robot/send?access_token=%s"
dingtalk.pool = 10
# 微信通知方式配置
wechat.url = http://xx.com/api/tools/send_wechat
wechat.pool = 10
6. Компиляция и установка: возможные проблемы
При сборке программы с помощью команды go build могут возникнуть ошибки, связанные с отсутствием некоторых зависимостей. В этом случае необходимо клонировать репозиторий с недостающими зависимостями и скопировать его в папку $GOPATH/src. Клонирование репозитория:
git clone https://github.com/golang/crypto.git $GOPATH/src/golang.org/x/crypto
Docker
Локально скомпилированный двоичный файл помещается в корневой каталог, после чего выполняется следующая команда:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build
docker-compose up -d
# Просмотр журналов:
docker-compose logs -f web
Выполнение на Windows удалённо
Включите функцию Telnet:
Запустите службу Telnet:
Авторизуйтесь:
Описание интерфейса задач Три простых интерфейса, удовлетворяющих повседневные потребности.
id:0
create_id:4
group_id:3
task_name: тестирование API создания задачи
description: тестирование
concurrent:0
server_id:2
cron_spec:*/2 * * * *
command:free -G
timeout:0
is_notify:0
notify_type:0
notify_tpl_id:0
notify_user_ids:0
Параметры имеют подробное описание в базе данных. Обратите внимание, что id = 0 означает добавление, а больше 0 — изменение.
id:11
id:11
Обратите внимание на использование метода form-data для передачи параметров.
Возвращаемый JSON:
{
"message": 11,
"status": 0
}
Успех обозначается status = 0, другие значения указывают на неудачу, msg — это причина ошибки или идентификатор. Можно использовать Postman для тестирования.
Общие проблемы
Как удалить задачу? В настоящее время процесс удаления заключается в редактировании задачи пользователем без прав администратора. После редактирования задача переходит в список ожидающих проверки. Затем её можно удалить. Поскольку удаление уже проверенных задач считается чувствительной операцией, и предполагается, что эта операция выполняется нечасто, она была перемещена в список ожидающих проверки. Если вы считаете, что эту операцию необходимо добавить в список задач, то это будет сделано позже.
Проблема удаления группы ресурсов. Ресурсы фактически представляют собой серверы или контейнеры, выполняющие задачи. Ресурсные группы — это способ классификации этих серверов или контейнеров. Поэтому при удалении ресурсной группы необходимо убедиться, что в этой группе нет серверов. Либо удалите группу, либо переместите ресурсы в другую группу.
Контакты QQ группа: 547564773 Приглашаем к общению и ждём кода от вас.
Благодарности @bannerchi, @linxiaozhi, @gongwalker
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )