当前位置: 首页 > wzjs >正文

网站搜索功能模块山东专业网站建设哪家便宜

网站搜索功能模块,山东专业网站建设哪家便宜,广告推广赚钱在哪接,做网站办什么类型营业执照背景 在一个有多个服务实例的分布式系统中,如果你用 Scheduled 来定义定时任务,所有实例都会执行这个任务。ShedLock 的目标是只让一个实例在某一时刻执行这个定时任务。 使用步骤 引入依赖 当前以redisTemplate为例子,MongoDB、Zookeeper…

背景

在一个有多个服务实例的分布式系统中,如果你用 @Scheduled 来定义定时任务,所有实例都会执行这个任务。ShedLock 的目标是只让一个实例在某一时刻执行这个定时任务。

使用步骤

引入依赖

当前以redisTemplate为例子,MongoDB、Zookeeper、JDBC都可以但是需要建表

需要注意java1.8需要使用4.42.0,java17使用5.10.0不然会报错
Spring常见错误:类文件具有错误的版本 61.0, 应为 52.0

<dependency><groupId>net.javacrumbs.shedlock</groupId><artifactId>shedlock-provider-redis-redisson</artifactId><version>4.42.0</version>
</dependency>
<dependency><groupId>org.redisson</groupId><artifactId>redisson-spring-boot-starter</artifactId><version>4.42.0</version>
</dependency>

增加配置类

package com.platform.common.redis.configure;import net.javacrumbs.shedlock.core.LockProvider;
import net.javacrumbs.shedlock.provider.redis.spring.RedisLockProvider;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;@Configuration
public class ShedLockConfig {@Beanpublic LockProvider lockProvider(RedisConnectionFactory redisConnectionFactory) {// 创建 Redis 锁提供者,使用 RedisConnectionFactoryreturn new RedisLockProvider(redisConnectionFactory);}
}

启用ShedLock,在启动类上增加@EnableSchedulerLock注解

@EnableSchedulerLock(defaultLockAtMostFor = "PT30S")
@SpringBootApplication
public class PlatFormRsyncApplication implements CommandLineRunner 

定时任务的使用,在@Scheduled下增加@SchedulerLock注解

需要注意所有@SchedulerLock修饰的方法必须为public,因为需要序列化

@Scheduled(fixedRateString = "${task.fsOrgPersonRsyncTask.fixedRate}")
@SchedulerLock(name = "myTask", lockAtMostFor = "PT30S", lockAtLeastFor = "PT5S")
public void fsOrgPersonRsyncTask() {

name:任务唯一标识(必须)

  • lockAtMostFor:最多锁定多久(即使服务挂了,锁也会过期)
  • lockAtLeastFor:至少锁定多久(任务执行太快也保持锁一段时间)

格式支持 ISO-8601,例如:

  • “PT30S” 表示 30 秒
  • “PT5M” 表示 5 分钟

工作原理

不需要手动创建 Redis key,ShedLock 会自动处理
在这里插入图片描述


锁的获取:

  • 当某个服务器尝试执行定时任务时,ShedLock 会尝试在 Redis 中为该任务设置一个锁(通过设置一个具有过期时间的键)。
  • 如果 Redis 中没有该锁,ShedLock 就会成功地为该任务设置锁,表明该服务器成功获得了执行任务的权限。
  • 如果 Redis 中已经存在该锁(表示其他服务器正在执行该任务),那么当前尝试获取锁的服务器就无法获取到锁。此时,该服务器不会执行任务,它会等待锁释放。

任务执行:

  • 获取到锁的服务器会执行定时任务。在任务执行期间,其他服务器无法获得锁,因此不能执行相同的任务。

锁的释放:

  • 任务执行完成后,获取到锁的服务器会释放锁(ShedLock 会自动处理锁的过期和释放)。锁的过期时间是由 lockAtMostFor 属性控制的,如果任务执行时间较短,锁会提前过期释放。

其他服务器:

  • 其他服务器一开始获取不到锁时会等到下次尝试。通常,它们会继续等待锁的释放,或者根据配置的定时任务周期(例如 @Scheduled(cron = “0 */1 * * * ?”))再次尝试获取锁。

文章转载自:

http://Hkh4jkS0.Lkwyr.cn
http://2pkY0YPb.Lkwyr.cn
http://GHyMMH7u.Lkwyr.cn
http://keHpxJhs.Lkwyr.cn
http://miESeiKu.Lkwyr.cn
http://2Lk2OgU7.Lkwyr.cn
http://pGEXtHfC.Lkwyr.cn
http://lyZOglcF.Lkwyr.cn
http://efAdeHZu.Lkwyr.cn
http://8EeVPGWD.Lkwyr.cn
http://w4cPznSd.Lkwyr.cn
http://58ZmjPwY.Lkwyr.cn
http://NSEo463U.Lkwyr.cn
http://bSparsqg.Lkwyr.cn
http://T9uuh269.Lkwyr.cn
http://6xDqI40e.Lkwyr.cn
http://gWRioPfj.Lkwyr.cn
http://OX5AtybZ.Lkwyr.cn
http://izB54REr.Lkwyr.cn
http://TlkbEgQs.Lkwyr.cn
http://fREDHSB7.Lkwyr.cn
http://nopugtAC.Lkwyr.cn
http://PG6RKiWA.Lkwyr.cn
http://Cewc0erw.Lkwyr.cn
http://SpK4kKMh.Lkwyr.cn
http://gfL4B12d.Lkwyr.cn
http://z7tL8tug.Lkwyr.cn
http://6iYF8RfN.Lkwyr.cn
http://94SFyhmw.Lkwyr.cn
http://pZOvYFHh.Lkwyr.cn
http://www.dtcms.com/wzjs/667009.html

相关文章:

  • 北京国贸网站建设网站被360拦截怎么办
  • 网站样式侵权有哪些网站可以做视频
  • 大连做网站排名怎样学网络推广
  • 旅游网站建设方案背景描述没有网站怎么做百度优化
  • 制作公司网站设计要求设计网名大全
  • 西安 网站设计网站解析域名时间
  • 电脑怎样做网站淘宝客网站 建设要钱不
  • sqlite 做网站数据库爱站权重是怎么计算的
  • 文字游戏做的最好的网站网站常见程序问题
  • 微信小程序app下载WordPress seo终极优化
  • 网站首页设计及运行效果搭建商城哪家好点
  • 浙江省城乡建设厅网站wordpress 图片编辑
  • 网站建设费用做做什么科目西安做网站优化的公司
  • 网站建设网络推广seo网页设计图片与文字的研究
  • 专做废旧电子电路板配件回收的网站在线设计网站可以做ps和ppt
  • 站长全网指数查询网络规划设计师证书有什么用
  • 哪有做建筑设计的网站Ie8网站后台编辑文章
  • 怎样做自己的微商网站6wordpress自定义背景颜色
  • 树莓派做影视网站网站防护找谁做
  • 长春网站seo公司wordpress 分类 404
  • asp.net网站开发实战免费订单管理app
  • 天津定制网站建设公司酒店行业网站建设方案
  • 台州免费自助建站模板国科联创网站建设
  • 类型: 营销型网站建设装修网站设计师
  • 如何设计网站栏目公司网站建设需求表
  • 一般网站维护费用做网站营业执照经营范围怎么填写
  • 优秀网站网址营销渠道策略
  • 关键词排名点击软件网站学校网站设计的作用
  • 出词网站seo如何做
  • 做网站需不需要云数据库wordpress qux