From 62ad14eb5393dfc998cc922319ecc2b6181dd08a Mon Sep 17 00:00:00 2001 From: lxy <237809796@qq.com> Date: Mon, 7 Dec 2020 17:35:24 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=EF=BC=9A=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E6=96=87=E6=A1=A3=E8=A1=A5=E5=85=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 29 ++++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index d3f723d..744cf01 100644 --- a/README.md +++ b/README.md @@ -13,9 +13,9 @@ redtimer是本人纯手工精心编写的一个任务定时调度器,全部代 #### 安装使用教程 -创建启动定时任务 +##### 创建启动定时任务 ``` -TimerExecutor timerExecutor = new TimerExecutor(1); +TimerExecutor timer = new TimerExecutor(1); //A1 任务每 5s 执行一次 Task task1 = TimerTask.by("A1", ScheduledCycle.of(1000 * 5), t -> { @@ -26,20 +26,35 @@ Task task1 = TimerTask.by("A1", ScheduledCycle.of(1000 * 5), t -> { Task task2 = TimerTask.by("A2", ScheduledExpres.of("1-40 * * * *"), t -> { System.out.println(t.getName() + " 执行了"); - t.setScheduled(new ScheduledCycle(2000 * 1)); //修改当前任务执行计划 + task.setScheduled(ScheduledCycle.of(2000 * 1)); //修改当前任务执行计划 // t.setComplete(true); //在执行任务的过程中 设置任务状态为[完成],配合 timerExecutor.remove("taskname") 可很好的使用在系统数据过期检查中 }); -timerExecutor.add(task1, task2); //添加任务 task1,task2 +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位,分别表示:分-时-日-月-周,支持同 Linux中的 crond 时间表达式 +ScheduledExpres.of("1-40 * * * *"); // 任务每小时的1-40每分钟执行 -timerExecutor.remove("A1"); //从任务队列中删除A1任务 ``` -支持定时计划修改 +##### 支持定时计划修改 ``` //修改a1 每2s执行一次 task.setScheduled(ScheduledCycle.of(2000 * 1)); -timerExecutor.add(task); +timer.add(task); ``` 请看测试案例,以及阅读详细源码,所有的代码也就几百行;