FIFO

  • 2026.08.10 | youres | 230次围观
    bash FIFO令牌桶实现并发控制完整教程:3种写法让你的批量任务跑满不超载
    写批量脚本的时候,你有没有遇到过这种两难:并行数设低了效率上不去,设高了服务器又扛不住。用 bash 的 FIFO 加 wait -n 搭一个令牌桶,就能把这事解决得很漂亮。 什么是令牌桶?为什么它适合做并发控制 令牌桶的核心逻辑很简单:桶里有固定数量的"令牌",每个任务启动前必须从桶里取走一个令牌,任务结束后把令牌还回去。这样同时运行的任务数量永远不会超过桶的容量。换成 bash 的说法就是:创建 N 个 FIFO,启动任务前从某个 FIFO 读一把,任务结束时往另一个...
  • 2026.08.01 | youres | 91次围观
    wait -n实现Shell并发数控制任务池:3种写法让批量任务跑满不超载
    批量任务跑得慢,第一反应是加并发;结果一梭子把几百个后台进程全放出去,机器直接卡死、连接被对端限流、日志乱成一锅粥。真正需要的不是"无限并发",而是并发数可控的任务池——池子里始终跑 N 个,结束一个补一个。bash 从 4.3 起提供的 wait -n 就是干这个的,配合几行循环就能搭出一个够用的调度器,不用装 GNU Parallel,也不用被 xargs 的参数拼接折腾。 下面把我实际在巡检脚本里跑过的几种写法、踩过的坑和兜底方案一次讲清楚。 一、为什么"全放后台再...
1