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

OSCHINA-MIRROR/tc608-redtimer

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

RedTimer

Проект

RedTimer — это компонент для ручного планирования задач с временными интервалами, без каких-либо сторонних зависимостей. Весь код является оригинальным и написан самостоятельно.

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

Адрес проекта: https://gitee.com/tc608/redtimer.

Архитектура компонента

Руководство по использованию

Создание и запуск задачи с таймером
TimerExecutor timer = new TimerExecutor(1);

//A1 Задача выполняется каждые 5 секунд
Task task1 = TimerTask.by("A1", ScheduledCycle.of(1000 * 5), t -> {
    System.out.println(t.getName() + " выполнено");
});

//A2 Задача выполняется каждый час от 1 до 40 минут
Task task2 = TimerTask.by("A2", ScheduledExpres.of("1-40 * * * *"), t -> {
    System.out.println(t.getName() + " выполнено");

    task.setScheduled(ScheduledCycle.of(2000 * 1)); // Изменить текущий план выполнения задачи
    // t.setComplete(true); // Во время выполнения задачи установить статус задачи как «завершено», что может быть полезно при использовании вместе с timerExecutor.remove("taskname") для проверки истечения срока действия данных системы
});

timer.add(task1, task2); // Добавить задачи task1 и task2

timer.remove("A1"); // Удалить задачу A1 из очереди задач
Определение плана выполнения по времени
// ScheduledCycle: определение периодической задачи
// Передаётся значение в миллисекундах
ScheduledCycle.of(2000 * 1);
// Значение + единица измерения, например: 2s преобразуется в 2 секунды, например:
ScheduledCycle.of("2s"); // Выполняется каждые 2 секунды
ScheduledCycle.of("2m"); // Выполняется каждые 2 минуты
ScheduledCycle.of("2H"); // Выполняется каждые 2 часа
ScheduledCycle.of("2d"); // Выполняется каждые 2 дня

// ScheduledExpres: определение выражения времени, разделяется на 5 частей слева направо, представляющих минуты, часы, дни, месяцы и недели соответственно, аналогично выражению времени в crond Linux
ScheduledExpres.of("1-40 * * * *"); // Задача выполняется каждую минуту от 1 до 40 каждый час
Поддержка изменения плана выполнения
// Изменить a1 так, чтобы выполнялось каждые 2 секунды
task.setScheduled(ScheduledCycle.of(2000 * 1));
timer.add(task);

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

О проекте

redbbs — группа общения: 527523235
redkale — группа общения: 527523235 Если у вас есть вопросы, пожалуйста, присоединяйтесь к группам для обратной связи и общения.

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

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

Введение

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

Обновления

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

Участники

все

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

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