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

OSCHINA-MIRROR/leojie-FastCron

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
FastCronDoc.md 9.4 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 27.11.2024 23:23 1e3a108

Система проектирования документации FastCron (черновик)

Анализ требований

  1. Выполнение shell-задач по расписанию, включая задачи в виде Java jar и скрипты.
  2. Добавление, изменение и удаление задач с помощью графического интерфейса.
  3. Контроль выполнения задач по crontab-выражениям с точностью до секунды, поддержка ручного запуска.
  4. Настройка времени ожидания для задач, контроль параллельного выполнения, механизм повторных попыток после сбоя и мониторинг состояния выполнения задач.
  5. Отправка уведомлений по электронной почте о результатах выполнения задач.

Среда разработки

Windows 10 + idea2018 + jdk1.8

Проектные технологии

  • quartz2 — фреймворк для планирования задач;
  • MySQL — хранение информации о пользователях и задачах;
  • jetty+servlet3.0+freemarker+js+css+html — предоставление веб-сервисов;
  • org.apache.commons — набор инструментов Apache Commons;
  • commons utils — набор утилит Apache Commons;
  • guava — инструменты от Google;
  • lombok — сокращение избыточного кода;
  • log4j — функции логирования.

Структура проекта (многомодульная)

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

  • cron-common — общие инструменты;
  • cron-db — операции, связанные с базой данных;
  • cron-web-server — веб-сервер;
  • cron-core — управление планированием задач;
  • cron-fast-server — запуск планировщика задач и инициализация веб-сервера и базы данных.

Дизайн структуры таблиц

Таблица fast_cron_user (пользовательская таблица)

Поле Тип Длина Первичный ключ Обязательное поле Примечание
userId int 11 Да (автоинкремент) Да Уникальный идентификатор пользователя
username varchar 64 Нет Да Логин пользователя
password varchar 64 Да Да Пароль пользователя
email varchar 128 Да Да Электронная почта пользователя
role tinyint 4 Да Да Роль пользователя (1 — администратор, 2 — обычный пользователь)
status tinyint 4 Да Да Статус пользователя (2 — активный, -2 — заблокированный)
CREATE TABLE fast_cron_user(
  userId INT NOT NULL AUTO_INCREMENT,
  username VARCHAR(64) NOT NULL,
  password VARCHAR(64) NOT NULL,
    email VARCHAR(128) NOT NULL UNIQUE,
    role tinyint NOT NULL DEFAULT 2,
    `status` tinyint NOT NULL DEFAULT 2,
    PRIMARY KEY (userId)
);

Таблица fast_cron_job (таблица задач)

Поле Тип Длина Первичный ключ Обязательное поле Примечание
job_id int 11 Да (автоинкремент) Да Идентификатор задачи
job_name varchar 128 Нет Да Имя задачи
job_detail varchar 256 Нет Да Описание задачи
job_command varchar 256 Да Да Команда для выполнения задачи
created datetime Нет Нет Время создания задачи
last_update_time datetime Нет Нет Последнее время обновления задачи
time_out int 11 Нет По умолчанию 0 Время ожидания задачи
retry_times int 11 Нет По умолчанию 0 Количество повторных попыток при сбое задачи
status tinyint 4 Нет По умолчанию 2 Состояние задачи (2 — нормальное, -2 — удалено)
CREATE TABLE fast_cron_job(
    job_id INT NOT NULL AUTO_INCREMENT,
    job_name VARCHAR(128) NOT NULL,
    job_detail VARCHAR(256) NOT NULL,
  job_command VARCHAR(256) NOT NULL,
    created DATETIME NOT NULL,
    last_update_time DATETIME NOT NULL,
    time_out INT NOT NULL DEFAULT 0,
    retry_times INT NOT NULL DEFAULT 0,
    `status` TINYINT NOT NULL DEFAULT 2,
    PRIMARY KEY (job_id)
);

Таблица fast_cron_schedule_job (таблица запланированных задач)

Поле Тип Длина Первичный ключ Обязательное поле Примечание
id int 11 Да (автоинкремент) Да Идентификатор запланированной задачи
job_id int 11 Да Да Идентификатор задачи
job_group varchar 128 Да Да Группа задач
job_triggers_group varchar 128 Да Да Группа триггеров задач
job_trigger_name varchar 128 Да Да Триггер задачи
job_cron varchar 64 Да Да Выражение расписания задачи
created datetime Да Нет Дата создания запланированной задачи
last_update_time datetime Да Нет Последняя дата обновления запланированной задачи
status tinyint 4 Да По умолчанию 2 Статус запланированной задачи (2 — активировано, -2 — деактивировано)
CREATE TABLE fast_cron_schedule_job(
    id INT NOT NULL AUTO_INCREMENT,
    job_id INT NOT NULL,
    job_group VARCHAR(128) NOT NULL,
    job_triggers_group VARCHAR(128) NOT NULL,
    job_trigger_name VARCHAR(128) NOT NULL,
    job_cron VARCHAR(64) NOT NULL,
    created DATETIME NOT NULL,
    last_update_time DATETIME NOT NULL,
    `status` TINYINT NOT NULL DEFAULT 2,
    PRIMARY KEY (id)
);  

Таблица fast_cron_execution_job (таблица выполняемых задач)

Поле Тип Длина Первичный ключ Обязательное поле Примечание
id int 11 Да (автоинкремент) Да Идентификатор выполняемой задачи
job_id int 11 Да Да Идентификатор задачи
execution_way varchar 128 Да Да Способ выполнения задачи
start datetime Да Нет Начало выполнения задачи
end datetime Нет Нет Окончание выполнения задачи
execution_times tinyint 4 Да По умолчанию 1 Количество выполнений задачи (1 — первое выполнение, 2 — вторая попытка после сбоя)
execution_status tinyint 4 Да По умолчанию 1 Статус выполнения задачи (1 — выполнение задачи, 2 — завершение выполнения задачи, 3 — сбой выполнения задачи)
CREATE TABLE fast_cron_execution_job(
    id INT NOT NULL AUTO_INCREMENT,
    job_id INT NOT
``` **Таблица fast_cron_job_log: журнал выполнения задач fast cron job**

| Поле | Тип | Длина | Ключ | Обязательное | Примечание |
| --- | --- | --- | --- | --- | --- |
| id | int | 11 | Да (первичный) | Да | Уникальный идентификатор задачи |
| job_id | int | 11 | Нет | Да | Идентификатор задачи |
| job_log | LONGBLOB | — | Нет | Нет | Журнал выполнения задачи |

**Таблица fast_cron_events: таблица пользовательских операций fast cron events**

| Поле | Тип | Длина | Ключ | Обязательное | Примечание |
| --- | --- | --- | --- | --- | --- |
| event_id | int | 11 | Да (первичный, автоинкремент) | Да | Уникальный идентификатор операции |
| event_type | TINYINT | 4 | Нет | Да | Тип события |
| event_time | datetime | — | Нет | Да | Время события |
| username | varchar | 64 | Нет | Да | Имя пользователя |
| message | varchar | 512 | Нет | Нет | Описание операции |

**Индекс fast_cron_events_log для таблицы fast_cron_events**

Создаётся индекс для полей event_id и event_time.

Опубликовать ( 0 )

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

1
https://api.gitlife.ru/oschina-mirror/leojie-FastCron.git
git@api.gitlife.ru:oschina-mirror/leojie-FastCron.git
oschina-mirror
leojie-FastCron
leojie-FastCron
leo-dev