package com.example.demo;
import java.time.LocalDateTime;
import javax.annotation.Resource;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.scheduling.annotation.SchedulingConfigurer;
import org.springframework.scheduling.config.ScheduledTaskRegistrar;
import org.springframework.scheduling.support.CronTrigger;
import org.springframework.util.StringUtils;
import com.example.demo.dao.CronRepository;
import com.example.demo.service.CronService;
@Configuration
@EnableScheduling
public class CompleteScheduleConfig implements SchedulingConfigurer{
@Resource
private CronService cronService;
@Resource
private CronRepository cronRepository;
@Mapper
public interface CronMapper {
@Select("select cron from cron limit 1")
String getCron();
}
@Autowired
@SuppressWarnings("all")
CronMapper cronMapper;
private static final Logger logger = LoggerFactory.getLogger(CompleteScheduleConfig.class);
// @Scheduled(cron="0 */3 * * * ?")
// public void executeFileDownLoadTask() {
// // 每隔3分钟定时向数据库里面添加一条定时任务
// Thread current = Thread.currentThread();
// if (current != null){
// cronService.insertTwo();
// System.out.println("定时任务1——动态调用接口向DB里面添加一条定时任务:"+current.getId());
// logger.info("ScheduledTest.executeFileDownLoadTask 定时任务1:"+current.getId()+ ",name:"+current.getName());
// }
// }
/**
* 执行定时任务.
*/
@Override
public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
taskRegistrar.addTriggerTask(
//1.添加任务内容(Runnable)
() -> logger.info("执行定时任务1: " + LocalDateTime.now()+"从数据库里面读取定时任务cron表达式设置成功!"),
//2.设置执行周期(Trigger)
triggerContext -> {
//2.1 从数据库获取执行周期
String cron = cronMapper.getCron();
//2.2 合法性校验.
if (StringUtils.isEmpty(cron)) {
// Omitted Code ..
}
//2.3 返回执行周期(Date)
return new CronTrigger(cron).nextExecutionTime(triggerContext);
}
);
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
springboot maven动态向数据库添加定时任务demo,执行相应程序(结合数据库操作)
共37个文件
class:9个
java:8个
prefs:4个
2星 需积分: 50 21 下载量 197 浏览量
2018-04-09
17:08:06
上传
评论
收藏 64KB RAR 举报
温馨提示
springboot框架,动态向数据库添加定时任务,然后根据数据库中定时任务动态执行相应程序。
资源推荐
资源详情
资源评论
收起资源包目录
spring-bootdemo-1.rar (37个子文件)
spring-bootdemo-1
pom.xml 3KB
target
test-classes
com
example
demo
SpringBootdemo1ApplicationTests.class 655B
classes
META-INF
spring-configuration-metadata.json 323B
maven
com.example
spring-bootdemo
pom.xml 3KB
pom.properties 246B
MANIFEST.MF 343B
application.yml 376B
com
example
demo
dao
CronRepository.class 338B
SpringBootdemo1Application.class 736B
CompleteScheduleConfig.class 3KB
CompleteScheduleConfig$CronMapper.class 465B
controller
CronController.class 1KB
service
CronService.class 944B
entity
Cron.class 948B
CronProperties.class 726B
.factorypath 14KB
mvnw 6KB
.settings
org.eclipse.m2e.core.prefs 97B
org.eclipse.wst.common.project.facet.core.xml 145B
org.eclipse.core.resources.prefs 155B
org.eclipse.jdt.apt.core.prefs 68B
org.eclipse.jdt.core.prefs 301B
src
test
java
com
example
demo
SpringBootdemo1ApplicationTests.java 342B
main
resources
application.yml 376B
templates
static
java
com
example
demo
dao
CronRepository.java 214B
CronProperties.java 388B
SpringBootdemo1Application.java 326B
controller
CronController.java 711B
service
CronService.java 646B
entity
Cron.java 596B
CompleteScheduleConfig.java 3KB
.project 1KB
.classpath 1KB
.gitignore 261B
.mvn
wrapper
maven-wrapper.jar 46KB
maven-wrapper.properties 110B
mvnw.cmd 5KB
.apt_generated
共 37 条
- 1
资源评论
- qichangjian2018-11-26内容有点简单了
港风Id
- 粉丝: 1
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功