关于一个数组N多数据,定时查询,然后for 按id,分配多个进程进行处理,,但如何防止他们不重复处理。
worker 类
运行定时内获取数据库数据,是个多维数组,如何把数组中每个数据分配一个进程进行处理,处理完后,就行下一轮循环,如何让进程不会重复处理数据,
50条数据
分配给10个进程后,进行处理,发现处理数据的时候有重复。未找到原因
能给解决重复处理数据的思路
2秒查询数据库
$j = count($arr);
while($i<=$j-1){
dotask(arr[$i],option); 执行任务,
$i++
}
你没做排重处理当然重复了。
按照进程id取模,只处理取模后等于当前进程id的数据就好了。伪代码
谢谢,不重复了, 5个进程cpu100,看来还是有些问题。