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

OSCHINA-MIRROR/georgehao-PPGo_Job

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

PPGo_Job: система управления задачами

1. Описание

PPGo_Job — это лёгкая система управления задачами, разработанная на языке Go. Она проста в развёртывании и использовании, потребляет мало ресурсов и обеспечивает стабильную работу.

Система PPGo_Job поддерживает визуализацию задач, управление с несколькими пользователями и правами доступа, а также высокую параллельность выполнения задач. Она позволяет управлять задачами на нескольких серверах одновременно.

С момента выпуска версии 1.0 система получила поддержку и признание от многих технических специалистов. Она уже используется в производственных средах различных компаний и продолжает совершенствоваться. На данный момент выпущено более 20 версий, из которых 9 являются стабильными (они выпускаются после успешного развёртывания в производственной среде).

Код системы доступен на кодовых хостингах Code Cloud и GitHub. Документация доступна по указанным ссылкам.

2. Архитектура

На рисунке представлена архитектура системы.

Рисунок: архитектура системы PPGo_Job

На другом рисунке показана архитектура сервера.

Рисунок: архитектура сервера системы PPGo_Job

3. Особенности

В версии V2.x были добавлены следующие функции и возможности:

  1. Новый пользовательский интерфейс на основе LayUI, который обеспечивает более удобное взаимодействие с системой.
  2. Функция управления правами доступа для обеспечения безопасности и контроля над задачами.
  3. Возможность копирования данных между серверами для упрощения процесса добавления ресурсов.
  4. Детальная страница задач для более эффективного управления.
  5. Функция проверки задач для повышения контроля над их выполнением.
  6. Управление запрещёнными командами для обеспечения дополнительной безопасности.
  7. Улучшенная страница журнала для более удобного просмотра информации.
  8. Поддержка Docker для упрощённого развёртывания.
  9. Поддержка Windows для обеспечения совместимости с различными операционными системами.
  10. Уведомления через WeChat и DingTalk для информирования о событиях.
  11. Создание, запуск и закрытие задач через API для удалённого управления.
  12. Агент для выполнения задач через SSH, Telnet или агентский способ.

Использование PPGo_Job позволяет эффективно управлять задачами и экономить время.

4. Поддержка

Для поддержки проекта можно выполнить следующие действия:

  • Поставить звёздочку проекту.
  • Предложить автору выпить чашку воды.

Также представлены скриншоты интерфейса системы, которые демонстрируют её функциональность.

5. Установка

Существует два метода установки системы: компиляция и использование готовых пакетов.

Метод компиляции включает следующие шаги:

  • Получение исходного кода с помощью команды go get github.com/george518/PPGo_Job.
  • Создание базы данных MySQL и импорт файла ppgo_job2.sql.
  • Изменение конфигурации базы данных в файле config.
  • Сборка программы с помощью команды go build.
  • Запуск программы с помощью команд ./run.sh start или stop.

Для разных операционных систем предусмотрены соответствующие команды сборки и запуска.

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

Перед запуском программы необходимо установить необходимые зависимости, такие как 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 удалённо

  1. Включите функцию Telnet:

    • Панель управления → Программы и функции → Включение или отключение функций Windows → Выберите Telnet-сервер и Telnet-клиент.
  2. Запустите службу Telnet:

    • Панель управления → Администрирование → Службы → Telnet → Измените тип запуска на автоматический и запустите службу.
  3. Авторизуйтесь:

    • Панель управления → Администрирование → Локальная политика безопасности → Локальные политики → Параметры безопасности → Сетевой доступ: общий доступ и безопасность модели для локальных учётных записей → Классический.
    • Панель управления → Администрирование → Локальная политика безопасности → Локальные политики → Параметры безопасности → Учётные записи: разрешить только локальный вход в систему с использованием пустых паролей для учётных записей, которые не могут быть использованы для входа в систему через сеть → Отключено.
    • Панель управления → Администрирование → Управление компьютером → Системные инструменты → Локальные пользователи и группы → Группы → TelnetClients → Добавить пользователя.

Описание интерфейса задач Три простых интерфейса, удовлетворяющих повседневные потребности.

  1. Добавление и изменение интерфейса задачи:
  • URL: /task/apitask
  • Метод: post
  • Параметры:
    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 — изменение.

  1. Интерфейс запуска задачи:
  • URL: /task/apistart
  • Метод: post
  • Параметры:
    id:11
  1. Интерфейс приостановки задачи:
  • URL: /task/apipause
  • Метод: post
  • Параметры:
    id:11

Обратите внимание на использование метода form-data для передачи параметров.

Возвращаемый JSON:

{
    "message": 11,
    "status": 0
}

Успех обозначается status = 0, другие значения указывают на неудачу, msg — это причина ошибки или идентификатор. Можно использовать Postman для тестирования.

Общие проблемы

  1. Как удалить задачу? В настоящее время процесс удаления заключается в редактировании задачи пользователем без прав администратора. После редактирования задача переходит в список ожидающих проверки. Затем её можно удалить. Поскольку удаление уже проверенных задач считается чувствительной операцией, и предполагается, что эта операция выполняется нечасто, она была перемещена в список ожидающих проверки. Если вы считаете, что эту операцию необходимо добавить в список задач, то это будет сделано позже.

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

Контакты QQ группа: 547564773 Приглашаем к общению и ждём кода от вас.

Благодарности @bannerchi, @linxiaozhi, @gongwalker

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

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

Введение

PPGo_Job — это система управления с визуализацией для периодических задач, которая поддерживает многопользовательский режим и различные уровни доступа. Система разработана на языке Golang, проста в установке, экономична в использовании ресурсов и способна работать с высокой степенью параллелизма. Она позволяет одновременно управлять периодически... Развернуть Свернуть
Apache-2.0
Отмена

Обновления

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

Участники

все

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

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