java动态跑批定时任务 读取数据库中的cron表达式
时间: 2023-05-30 08:06:29 浏览: 829
springboot整合quartz,实现数据库方式执行定时任务
5星 · 资源好评率100%
Java动态跑批定时任务可以使用Spring框架中的定时任务功能。在读取数据库中的cron表达式时,可以使用JDBC来连接数据库,并使用SQL语句查询出需要执行的任务的cron表达式。然后,将cron表达式传递给Spring的@Scheduled注解,即可实现定时执行任务。
以下是一个简单的示例代码:
```java
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@Component
public class BatchJob {
@Autowired
private JdbcTemplate jdbcTemplate;
@Scheduled(cron = "#{@getCronExpression}")
public void runBatchJob() {
// 执行批处理任务
}
public String getCronExpression() {
String sql = "SELECT cron_expression FROM batch_job WHERE job_name = 'myJob'";
return jdbcTemplate.queryForObject(sql, String.class);
}
}
```
在上面的示例中,@Scheduled注解使用了SpEL表达式来获取getCronExpression()方法的返回值作为cron表达式。getCronExpression()方法使用JdbcTemplate查询数据库中的cron_expression字段,并返回查询结果。这样,每次定时任务执行时,都会从数据库中读取最新的cron表达式。
阅读全文