隐藏页面特效

定时任务的执行以及分布式锁

1|0定时任务的执行


1. 为什么需要控制定时任务的执行?

不控制的后果:

  1. 浪费资源,会出现多台(比如1000台)服务器同时开始执行定时任务的情形
  2. 脏数据,比如出现重复插入的情况

2. 要控制定时任务在同一时间只能有一个服务器执行

怎么做?

  1. 分离定时任务程序和主程序,只在 1 个服务器运行定时任务。成本太大。
  2. 写死配置,每个服务器都执行定时任务,但是只有 ip 符合配置的服务器才真实执行业务逻辑,其他的直接返回。成本最低;但是现在服务部署不一定是单机部署了,可能进行了容器化部署,是动态IP。
  3. 动态配置,配置是可以轻松的、很方便地更新的(代码无需重启),但是只有 ip 符合配置的服务器才真实执行业务逻辑。问题:服务器多了、IP 不可控还是很麻烦,还是要人工修改。
    • 数据库
    • Redis
    • 配置中心(Nacos、Apollo、Spring Cloud Config)
  4. 分布式锁,只有抢到锁的服务器才能执行业务逻辑。坏处:增加成本;好处:不用手动配置,多少个服务器都一样。
    单机就会存在单点故障。

分布式锁

参考:https://www.cnblogs.com/techgy/p/17538863.html


__EOF__

本文作者techgy
本文链接https://www.cnblogs.com/techgy/p/17538810.html
关于博主:I am a good person
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   AI未来10Y  阅读(102)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示