【需求场景】:一个10000w行的文件处理 ,多进程处理 比如启动100个进程同时处理。
【方法】:拆分文件(split) ,制作shell脚本 执行后台进程
【demo】:
假设处理程序为 test.php , 需要接收参数 处理数据文件路径 加 传入参数 eg:part_01 1 【第二个参数用来辅助内部调用不同接口处理】
【方法】:
demo.data 1000w行
拆分 split -l 10000 demo.data part_
执行结果 100个文件
处理脚本 ,test.php
制作shell
#!/bin/sh dir='mulu/part_*' i=0 for file in `ls $dir` do let "i++" let "j=i%2" nohup php test.php $file $j > $file.res & done
【批量kill】
ps -ef|grep LOCAL=NO|grep -v grep|cut -c 9-15|xargs kill -9
local=no 进程关键字