springboot schedule通过数据库控制开启关闭
时间: 2023-10-17 14:21:00 浏览: 128
Spring Boot 通过web开启和关闭定时任务
可以通过在数据库中创建一个标志位来控制定时任务的开启和关闭。
1. 创建一个表用于存储定时任务开关的状态:
```
CREATE TABLE `tb_schedule_switch` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '0-关闭 1-开启',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
```
2. 在定时任务的配置类中注入JdbcTemplate,并在定时任务方法中查询该表的开关状态:
```
@Configuration
@EnableScheduling
public class ScheduleConfig {
@Autowired
private JdbcTemplate jdbcTemplate;
@Scheduled(cron = "0/5 * * * * ?")
public void scheduleTask() {
Integer status = jdbcTemplate.queryForObject("SELECT status FROM tb_schedule_switch WHERE id = 1", Integer.class);
if (status == 1) {
// 定时任务的具体逻辑
}
}
}
```
3. 在需要开启或关闭定时任务时,更新该表的开关状态即可:
```
UPDATE tb_schedule_switch SET status = 1; // 开启定时任务
UPDATE tb_schedule_switch SET status = 0; // 关闭定时任务
```
阅读全文