目的:创建多个进程去复制一个目录下的所有文件到另一个目录(使用场景同样适合其他多进程场景如批量发送邮件,短信等)
效果:将file目录下的a.php,b.php,c.php 移动到copy_file目录下的a.php,b.php,c.php 进程1 复制a.php 进程2 复制b.php 进程3 复制c.php
遇见的问题:进程1会复制a.php b.php c.php 进程2和进程3会再复制一遍
解决办法:利用redis,将要复制的文件地址和复制到的地址都放进redis里,然后循环去复制
优化:可以修改成一个类,类里包括进程的控制和具体的复制文件方法,复制文件内添加移动标示,优化的代码见图图片2,3
代码: