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 )