From 0fee267e4a2d2959b390fc59dd707cf6e3d05bd3 Mon Sep 17 00:00:00 2001 From: jcsun <80867809@qq.com> Date: Sun, 13 Mar 2022 18:40:21 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20junit=20=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../extra/spring/SpringCronUtilTest.java | 94 +++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 hutool-extra/src/test/java/cn/hutool/extra/spring/SpringCronUtilTest.java diff --git a/hutool-extra/src/test/java/cn/hutool/extra/spring/SpringCronUtilTest.java b/hutool-extra/src/test/java/cn/hutool/extra/spring/SpringCronUtilTest.java new file mode 100644 index 000000000..a3eb1e615 --- /dev/null +++ b/hutool-extra/src/test/java/cn/hutool/extra/spring/SpringCronUtilTest.java @@ -0,0 +1,94 @@ +package cn.hutool.extra.spring; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.extra.spring.config.SpringCronConfig; +import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; +import org.junit.After; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.scheduling.TaskScheduler; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; + +import java.io.Serializable; +import java.time.Duration; +import java.time.Instant; +import java.util.List; + +/** + * @author JC + * @date 03/13 + */ +@Slf4j +@RunWith(SpringJUnit4ClassRunner.class) +@SpringBootTest(classes = {SpringCronConfig.class, SpringCronUtil.class}) +public class SpringCronUtilTest { + /** + * 创建一个定时任务 + * 观察日志可进行验证 + */ + @Test + public void registerTask() { + String ID1 = SpringCronUtil.schedule(this::task, "0/1 * * * * ?"); + String ID2 = SpringCronUtil.schedule(888, this::task, "0/1 * * * * ?"); + log.info("taskId: {},{}", ID1, ID2); + } + + /** + * 修改一个定时任务 + */ + @Test + @SneakyThrows + public void updateTask() { + SpringCronUtil.schedule(888, this::task, "0/1 * * * * ?"); + Thread.sleep(5000); + boolean update = SpringCronUtil.update(888, "0/5 * * * * ?"); + log.info("update task result: {}", update); + } + + /** + * 取消一个定时任务 + */ + @Test + @SneakyThrows + public void cancelTask() { + SpringCronUtil.schedule(888, this::task, "0/1 * * * * ?"); + Thread.sleep(5000); + boolean cancel = SpringCronUtil.cancel(888); + log.info("cancel task result: {}", cancel); + } + + /** + * 高级用法 + * 参考: + */ + @Test + public void senior() { + TaskScheduler scheduler = SpringCronUtil.getScheduler(); + // 给定时间 开始, 间隔时间.. + scheduler.scheduleAtFixedRate(this::task, Instant.now(), Duration.ofMinutes(10)); + // ... + } + + /** + * 取消全部定时任务 + * 查看当前所有的任务 + */ + @After + @SneakyThrows + public void cancelAll() { + Thread.sleep(10000); + List allTask = SpringCronUtil.getAllTask(); + log.info("allTask: {}", allTask); + + SpringCronUtil.destroy(); + + allTask = SpringCronUtil.getAllTask(); + log.info("allTask: {}", allTask); + } + + private void task() { + log.info("information only.. (date:{})", DateUtil.now()); + } +}