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

营销型网站建设企业免费的网站申请

营销型网站建设企业,免费的网站申请,最新热门事件,医药网站备案目标&#xff1a;一行代码调用&#xff0c;简单粗暴。 基操&#xff1a;自动加锁&#xff0c;自动解锁&#xff0c;自动处理异常&#xff0c;自动处理锁超时等。 安装 redis redisson <dependency><groupId>org.springframework.boot</groupId><artifac…

目标:一行代码调用,简单粗暴。
基操:自动加锁,自动解锁,自动处理异常,自动处理锁超时等。

安装

redis + redisson

        <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency><dependency><groupId>org.redisson</groupId><artifactId>redisson-spring-boot-starter</artifactId><version>3.39.0</version></dependency>

hutool 工具类

        <dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.16</version></dependency>

配置

spring:data:redis:host: xxxport: 6379password: xxxdatabase: x

配置类

import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;/*** 方便获取 Spring IOC 实例** @author jason*/
@Configuration
@Import(cn.hutool.extra.spring.SpringUtil.class)
public class BeanConf {
}

工具类

import cn.hutool.core.thread.ThreadUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.extra.spring.SpringUtil;
import lombok.extern.slf4j.Slf4j;
import org.redisson.api.RLock;
import org.redisson.api.RedissonClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;import java.util.concurrent.TimeUnit;
import java.util.function.Supplier;/*** Redisson 操作工具类** @author jason*/
@Slf4j
@Component
public class RedissonUtil {/*** 锁默认超时时间为(单位:秒)*/private static final long LEASE_TIME = 10;@Autowiredprivate RedissonClient redissonClient;public static RedissonUtil instance() {return SpringUtil.getBean(RedissonUtil.class);}/*** 获取可重入锁* <p>* 读写锁(RReadWriteLock)包括读锁和写锁两部分:* 读锁(Read Lock):允许多个读线程同时访问,但写线程会被阻塞。* 写锁(Write Lock):独占锁,保证同时只有一个写线程访问,同时也会阻塞其他读线程。*/public static RLock getClint(String key) {return instance().redissonClient.getLock(key);}/*** 加锁*/public static void lock(String key) {getClint(key).lock(LEASE_TIME, TimeUnit.SECONDS);}/*** 解锁*/public static void unLock(String key) {if (getClint(key).isLocked()) {getClint(key).unlock();}}/*** 分布式锁,默认超时时间为 LEASE_TIME*/public static <T> T lock(String lockKey, Supplier<T> supplier) {lockKey = "distributed:" + lockKey;log.info("加锁开始,线程:{}", ThreadUtil.currentThreadGroup().getName());RedissonUtil.lock(lockKey);log.info("加锁结束,线程:{}", ThreadUtil.currentThreadGroup().getName());try {log.info("执行代码块开始,线程:{}", ThreadUtil.currentThreadGroup().getName());T t = supplier.get();log.info("执行代码块结束,线程:{}", ThreadUtil.currentThreadGroup().getName());return t;} catch (Exception e) {log.error(StrUtil.format("执行异常,线程:{}", ThreadUtil.currentThreadGroup().getName()), e);} finally {RedissonUtil.unLock(lockKey);log.info("释放锁结束,线程:{}", ThreadUtil.currentThreadGroup().getName());}return null;}}

测试

    @GetMapping("/lock/{key}")public String lock(@PathVariable String key) {return RedissonUtil.lock(key, () -> {ThreadUtil.sleep(30 * 1000);return "出参";});}
2024-12-26T11:07:41.307 xxx.util.RedissonUtil    : 加锁开始,线程:main
2024-12-26T11:07:41.315 xxx.util.RedissonUtil    : 加锁结束,线程:main
2024-12-26T11:07:41.315 xxx.util.RedissonUtil    : 执行代码块开始,线程:main
2024-12-26T11:08:11.323 xxx.util.RedissonUtil    : 执行代码块结束,线程:main
2024-12-26T11:08:11.338 xxx.util.RedissonUtil    : 释放锁结束,线程:main

源码

https://gitee.com/zhaomingjian/workspace_jason_demo/tree/master/spring-boot-seckill

http://www.dinnco.com/news/47925.html

相关文章:

  • 怎么介绍做网站技术seo研究中心vip课程
  • 诸城做网站建设的全网搜索软件
  • 宁波做网站seo的有人看片吗免费观看视频
  • 豫港大厦 做网站石家庄seo公司
  • 国外域名建设黄网站网络营销策略包括
  • 行业平台网站开发成都本地推广平台
  • 中小企业服务中心网站建设免费百度下载
  • 怎么看一个网站是由哪个网络公司做的营销管理制度范本
  • 怎样在百度上建网站免费建站网站一站式
  • 网站群建设意义杭州云优化信息技术有限公司
  • 网站建设指标免费网站制作教程
  • 杭州网站建设宣盟网络百度无广告搜索引擎
  • 网站滚动图片怎么做网站建设模板
  • Ag网站制作易观数据app排行
  • 旅游网站论文百度手机助手下载2022新版
  • 用dw做旅游网站的方法成都高端企业网站建设
  • 网站建设时间、人力及成本估算现在外贸推广做哪个平台
  • 免费流量网站推广东莞市民最新疫情
  • 网站关键字排名优化伊春seo
  • 广东省建设厅网站6广州企业推广
  • 西安政府网站设计网络营销策划案
  • 市场调研公司成功案例seo营销外包公司
  • 东营建设信息网站网站推广app下载
  • 简单的网站开发模板推广链接让别人点击
  • gif5网站下载不了做的动图软文世界平台
  • 常州武进网站建设百度旗下产品
  • 迈肯奇迹做网站全国疫情的最新数据
  • 百度网站的目标seo网站快速排名软件
  • 免费b2b网站大全不花钱主要推广手段免费
  • 哪里能做网站竞价托管资讯