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

青海省住房和城乡建设厅官方网站wordpress s.w.org

青海省住房和城乡建设厅官方网站,wordpress s.w.org,2018做技术分享网站有前景吗,购买网站建站C# --- 使用Redis分布式锁实现初始化任务背景解决方案 --- 分布式锁背景 service A 在启动时需要读取一些配置文件,并根据配置文件的内容对数据库进行更新service A有多个实例,所以在启动时会重复进行初始化,浪费资源 解决方案 — 分布式锁 …

C# --- 使用Redis分布式锁实现初始化任务

  • 背景
  • 解决方案 --- 分布式锁

背景

  • service A 在启动时需要读取一些配置文件,并根据配置文件的内容对数据库进行更新
  • service A有多个实例,所以在启动时会重复进行初始化,浪费资源

解决方案 — 分布式锁

可以使用分布式锁 + version number的方式实现只让一个实例进行初始化任务

  • version number: .Net应用在编译时(不管代码有没有改变)都会生成一个assembly module version id
  • version number存在数据库里,用于对比

具体步骤:

  • 多个实例同时启动,不断尝试获取分布式锁
  • 实例A拿到锁,使用自身的version number和数据库里的进行对比,如果不一致则说明初始化任务还未进行,则执行初始化任务,完成后释放锁
  • 实例B获取锁,使用自身的version number和数据库里的进行对比,发现version number一致,则说明已执行完初始化任务,跳过初始化任务
//.Net的 Redis library
using RedLockNet private async Task<IRedLock> AcquireLock()
{//时间分别为:expireTime,waitTime,retryTimevar dLock= await _lockFactory.CreateLockAsync(LockKey, TimeSpan.FromSeconds(60), TimeSpan.FromSeconds(70), TimeSpan.FromSeconds(2),if (dLock.IsAcquired){return dLock}await dLock.Dispose();throw Exception("Cannot get lock within wait time")
}
public async DoInitTask()
{await using var distributedLock = await AcquireLock()var newVersion = GetNewVersion();var curVersion = GetVersionFromDB();if (newVersion = curVersion) {log("already init")return }//do init task
}
http://www.dtcms.com/a/561954.html

相关文章:

  • Apollo Planning 模块技术深度解析
  • 哪个网站可以帮助做数学题百度推送
  • 企业网站和信息化建设哪里有网站制作服务
  • 【Linux】深入理解进程(三)(环境变量)
  • 【C学生序号姓名学号年龄降序排序】2022-12-9
  • 平衡二叉树解题思路
  • 电子商务网站应该如何建设四川教育公共信息服务平台
  • 响应式官方网站便宜自适应网站建设厂家
  • 实例016 百元买百鸡问题
  • 硬件-射频学习DAY3——高频电流的“恐深症”:趋肤效应解密
  • Hudi安装部署
  • 宠物之家网站开发九江网站建设优化公司
  • 网站的360快照怎么做锦州网站seo
  • 【Android】结合View的事件分发机制解决滑动冲突
  • python 异步编程 -- 理解asyncio里的Future 对象
  • zoho crmvue做网站对seo
  • Java---System 类
  • 31.使用等待队列实现阻塞访问
  • Tyme 技术赋能:节气与季节的高效求解实战攻略
  • 【C++】2025CSP-J第二轮真题及解析
  • 网站建设教程流程更改wordpress主题语言
  • 朝阳区网站建设蒙特网设计公司
  • 济南网站优化厂家做同城服务网站比较成功的网站
  • 老鼠目标检测数据集(3000张)
  • 想做个网站怎么做长沙五百强企业名单
  • 九江建网站报价wordpress wiki 整合
  • 中英文版网站建设小广告制作
  • 05-深度学习的原理:探讨深度学习的工作原理和数学基础
  • 【深度学习新浪潮】AI缺陷检测:从技术原理到工业落地实践
  • lol英雄介绍网站模板网络广告推广员