diff --git a/kernel-d-timer/timer-api/src/main/java/cn/stylefeng/roses/kernel/timer/api/TimerExeService.java b/kernel-d-timer/timer-api/src/main/java/cn/stylefeng/roses/kernel/timer/api/TimerExeService.java
index 7ab977b51..81d5d296d 100644
--- a/kernel-d-timer/timer-api/src/main/java/cn/stylefeng/roses/kernel/timer/api/TimerExeService.java
+++ b/kernel-d-timer/timer-api/src/main/java/cn/stylefeng/roses/kernel/timer/api/TimerExeService.java
@@ -8,6 +8,22 @@ package cn.stylefeng.roses.kernel.timer.api;
*/
public interface TimerExeService {
+ /**
+ * 开启定时器调度
+ *
+ * @author fengshuonan
+ * @date 2021/1/12 20:33
+ */
+ void start();
+
+ /**
+ * 关闭定时器调度
+ *
+ * @author fengshuonan
+ * @date 2021/1/12 20:33
+ */
+ void stop();
+
/**
* 启动一个定时器
*
diff --git a/kernel-d-timer/timer-business/src/main/java/cn/stylefeng/roses/kernel/timer/modular/listener/TaskRunListener.java b/kernel-d-timer/timer-business/src/main/java/cn/stylefeng/roses/kernel/timer/modular/listener/TaskRunListener.java
new file mode 100644
index 000000000..710150c98
--- /dev/null
+++ b/kernel-d-timer/timer-business/src/main/java/cn/stylefeng/roses/kernel/timer/modular/listener/TaskRunListener.java
@@ -0,0 +1,47 @@
+package cn.stylefeng.roses.kernel.timer.modular.listener;
+
+import cn.hutool.extra.spring.SpringUtil;
+import cn.stylefeng.roses.kernel.timer.api.TimerExeService;
+import cn.stylefeng.roses.kernel.timer.api.enums.TimerJobStatusEnum;
+import cn.stylefeng.roses.kernel.timer.modular.entity.SysTimers;
+import cn.stylefeng.roses.kernel.timer.modular.param.SysTimersParam;
+import cn.stylefeng.roses.kernel.timer.modular.service.SysTimersService;
+import org.springframework.boot.context.event.ApplicationStartedEvent;
+import org.springframework.context.ApplicationListener;
+import org.springframework.core.Ordered;
+
+import java.util.List;
+
+/**
+ * 项目启动,将数据库所有定时任务开启
+ *
+ * @author fengshuonan
+ * @date 2021/1/12 20:40
+ */
+public class TaskRunListener implements ApplicationListener, Ordered {
+
+ @Override
+ public void onApplicationEvent(ApplicationStartedEvent event) {
+
+ SysTimersService sysTimersService = SpringUtil.getBean(SysTimersService.class);
+ TimerExeService timerExeService = SpringUtil.getBean(TimerExeService.class);
+
+ // 开启任务调度
+ timerExeService.start();
+
+ // 获取数据库所有开启状态的任务
+ SysTimersParam sysTimersParam = new SysTimersParam();
+ sysTimersParam.setJobStatus(TimerJobStatusEnum.RUNNING.getCode());
+ List list = sysTimersService.list(sysTimersParam);
+
+ // 添加定时任务到调度器
+ for (SysTimers sysTimers : list) {
+ timerExeService.startTimer(String.valueOf(sysTimers.getTimerId()), sysTimers.getCron(), sysTimers.getActionClass());
+ }
+ }
+
+ @Override
+ public int getOrder() {
+ return LOWEST_PRECEDENCE;
+ }
+}
diff --git a/kernel-d-timer/timer-sdk-hutool/src/main/java/cn/stylefeng/roses/kernel/hutool/HutoolTimerExeServiceImpl.java b/kernel-d-timer/timer-sdk-hutool/src/main/java/cn/stylefeng/roses/kernel/hutool/HutoolTimerExeServiceImpl.java
index 7d9c7f44e..4f240eec9 100644
--- a/kernel-d-timer/timer-sdk-hutool/src/main/java/cn/stylefeng/roses/kernel/hutool/HutoolTimerExeServiceImpl.java
+++ b/kernel-d-timer/timer-sdk-hutool/src/main/java/cn/stylefeng/roses/kernel/hutool/HutoolTimerExeServiceImpl.java
@@ -19,6 +19,20 @@ import lombok.extern.slf4j.Slf4j;
@Slf4j
public class HutoolTimerExeServiceImpl implements TimerExeService {
+ @Override
+ public void start() {
+ // 设置秒级别的启用
+ CronUtil.setMatchSecond(true);
+
+ // 启动定时器执行器
+ CronUtil.start();
+ }
+
+ @Override
+ public void stop() {
+ CronUtil.stop();
+ }
+
@Override
public void startTimer(String taskId, String cron, String className) {
diff --git a/kernel-d-timer/timer-spring-boot-starter/src/main/resources/META-INF/spring.factories b/kernel-d-timer/timer-spring-boot-starter/src/main/resources/META-INF/spring.factories
index f409a39e5..cca2bad7e 100644
--- a/kernel-d-timer/timer-spring-boot-starter/src/main/resources/META-INF/spring.factories
+++ b/kernel-d-timer/timer-spring-boot-starter/src/main/resources/META-INF/spring.factories
@@ -1,2 +1,4 @@
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
- cn.stylefeng.roses.kernel.timer.starter.GunsTimerAutoConfiguration
\ No newline at end of file
+ cn.stylefeng.roses.kernel.timer.starter.GunsTimerAutoConfiguration
+org.springframework.context.ApplicationListener=\
+ cn.stylefeng.roses.kernel.timer.modular.listener.TaskRunListener