Spring boot 自带的Schedule--多实例
来源:互联网 发布:英孚网络课程怎么样 编辑:程序博客网 时间:2024/06/17 00:16
有时我们只需要简单的调度功能,那么使用Spring boot 自带的Schedule就可以满足了、
要是需要复杂的管控,就使用Quartz框架,请参阅Spring boot下使用quartz
h和Spring boot下使用quartz–多实例
这章讲述的是Spring boot 自带的Schedule-多实例解决方法
1. pom.xml
引入基本的依赖就好了
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.programmer</groupId> <artifactId>spring-boot-test</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>spring-boot-task2</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <java.version>1.8</java.version> </properties> <!-- spring boot parent节点,引入这个之后,在下面和spring boot相关的就不需要引入版本了; --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.4.1.RELEASE</version> </parent> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- shedlock --> <dependency> <groupId>net.javacrumbs.shedlock</groupId> <artifactId>shedlock-spring</artifactId> <version>0.12.0</version> </dependency> <dependency> <groupId>net.javacrumbs.shedlock</groupId> <artifactId>shedlock-provider-jdbc-template</artifactId> <version>0.12.0</version> </dependency> <dependency> <groupId>net.javacrumbs.shedlock</groupId> <artifactId>shedlock-provider-jdbc</artifactId> <version>0.12.0</version> </dependency> </dependencies></project>
2. 配置文件
import java.time.Duration;import javax.sql.DataSource;import net.javacrumbs.shedlock.core.LockProvider;import net.javacrumbs.shedlock.provider.jdbctemplate.JdbcTemplateLockProvider;import net.javacrumbs.shedlock.spring.ScheduledLockConfiguration;import net.javacrumbs.shedlock.spring.ScheduledLockConfigurationBuilder;import org.springframework.boot.autoconfigure.AutoConfigureAfter;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;@Configuration//DruidAutoConfiguration是连接数据库的配置文件,因为要在数据库加载完成之后在执行该配置//不懂的可以参考[Spring boot下使用quartz--多实例](http://blog.csdn.net/yy756127197/article/details/75980459) 文末@AutoConfigureAfter(DruidAutoConfiguration.class)public class SchduleConfig { @Bean public LockProvider lockProvider(DataSource ds) { //test_shedlock 是数据表 return new JdbcTemplateLockProvider(ds,"test_shedlock"); } @Bean public ScheduledLockConfiguration taskScheduler(LockProvider lockProvider) { return ScheduledLockConfigurationBuilder .withLockProvider(lockProvider) .withPoolSize(10) .withDefaultLockAtMostFor(Duration.ofMinutes(10)) .build(); } }
3. 实现类
import lombok.extern.slf4j.Slf4j;import net.javacrumbs.shedlock.core.SchedulerLock;import org.springframework.scheduling.annotation.EnableScheduling;import org.springframework.scheduling.annotation.Scheduled;import org.springframework.stereotype.Service;@Service //也可以是@Component@EnableScheduling@Slf4jpublic class ScheduleTaskService { @Scheduled(fixedDelayString = "${schedule.test.time}") @SchedulerLock(name = "scheduleTest", lockAtLeastForString = "${schedule.test.time}", lockAtMostForString = "${schedule.test.time}" ) public void schdule(){ log.info("====调用Spring Schedule 开始===="); }}
schedule.test.time = 60000 是配置在application.properties中的,也可以直接写死在代码里
4. 数据表 test_shedlock
CREATE TABLE public.test_shedlock ( name varchar(64) NOT NULL, lock_until timestamp NULL, locked_at timestamp NULL, locked_by varchar(255) NULL, CONSTRAINT shedlock_pkey PRIMARY KEY (name))WITH ( OIDS=FALSE);
启动两个实例测试,VERY GOOD
喜欢请点赞,不懂请留言^^
阅读全文
0 0
- Spring boot 自带的Schedule--多实例
- 关于Spring boot 自带的jpa,错误记录
- spring boot之schedule
- spring boot调用spring自带定时任务
- Spring Boot学习笔记----Schedule
- spring-boot项目启动失败的一种解决办法:自带的tomcat容器切换成jetty容器
- DirectShow自带的实例(打开摄像头)
- Yii 自带的分页实例
- Matlab自带的SVM,实例演示
- vs2013自带的数据库实例。
- Spring Boot 定时任务之@Schedule
- spring 自带的缓存的使用
- spring自带的乱码过滤器
- spring自带的轻量级定时任务
- 配置Spring自带的编码过滤器
- 运行Spring-security自带的示例
- Spring自带的处理器映射
- spring自带的定时任务配置
- 原生js点击ul下边li显示其索引值的”n“种方法
- NodeJS、NPM安装配置步骤(windows版本)
- 明文与密文的转换
- 位扩展和字扩展
- [华为OJ]成绩排序
- Spring boot 自带的Schedule--多实例
- BLE SOC
- fscanf()、fprintf()的使用
- 【COCOS CREATOR 系列教程之二】脚本开发篇&事件监听、常用函数等示例整合
- Android无埋点数据收集SDK关键技术解析
- ubuntu下python3安装markdown
- VO、DTO、DO、PO的概念、区别和用处
- hellocharts图表插件---饼状图
- 阶乘之和(南阳oj,贪心,91)