开发者社区 > 云原生 > 正文

LSIF 的索引构建中,分布式时序锁怎么保证任务调度的顺序和尽量减少重复调度?

LSIF 的索引构建中,分布式时序锁怎么保证任务调度的顺序和尽量减少重复调度?

展开
收起
vncamyi27xznk 2021-12-15 23:33:44 389 0
1 条回答
写回答
取消 提交回答
  • image.png 当同一代码库的不同推动消息纷涌而至,Redis 维护的分布式锁会做如下判断:若该库当前没有正在运行的任务,将任务置于队首,立即运行;若已有一个正在执行的任务,比较新来的 Push 消息是否是最新的,若是,则加入队尾;当队伍已有两个成员时,则将任务丢弃,因为每次执行任务时,系统都会克隆分支代码,基于最新的版本构建索引,如此就避免了多少次 Push 就需要执行多少次索引构建的可能性。考虑到线程意外退出的情况,队首会每隔 5 秒钟全局发送心跳,当队尾或新来的任务监听到心跳超时,则会将队首的任务放弃并执行新的任务。

    答复内容摘自《云原生技术与架构实践年货小红书》,这本电子书收录开发者藏经阁 下载连接:https://developer.aliyun.com/topic/download?id=1127

    2021-12-16 14:30:28
    赞同 展开评论 打赏

阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。

相关电子书

更多
基于社区的分布式 风险感知模型 立即下载
如何利用Redisson分布式化传统Web项目 立即下载
FLASH:大规模分布式图计算引擎及应用 立即下载