php多线程抓取网页(PHP访问启动文件启动之前任务使用一个脚本去操作思路)
优采云 发布时间: 2022-01-07 13:21php多线程抓取网页(PHP访问启动文件启动之前任务使用一个脚本去操作思路)
有时候在做程序的时候,你会发现AJAX对于批处理异步不是很好。并且 PHP 不支持多线程。效率低。
这时候会使用 PYTHON 来做后台多线程操作。
在WINDOWS下比较麻烦。第一:如果是多任务,需要几个启动文件。一般一个启动文件就是一个PHP文件。
启动文件里面是运行CMD的代码
这是项目下放置PYTHON脚本和PHP临时启动文件缓存日志的目录。
一般情况下,在运行启动文件之前,需要将PYTHON脚本文件复制到C盘的PYTHON.EXE目录下。以便它可以正常运行(或因为权限问题)
所以在启动文件启动之前,让PHP把PYTHON脚本复制到PYTHON.EXE目录下。
然后创建启动文件
启动文件代码如下:(启动文件放在phpcache目录下)
多个任务需要使用多个启动文件和多个执行文件(PYTHON 脚本)。只有这样才能实现多任务和多线程。
不可能使用一个脚本来操作多个任务。
然后使用PHP访问启动文件开始任务执行。
访问代码如下:
然后后台程序开始运行。
测试效果:
20000条数据(远程)——数据量大的情况下,启动6个任务,每个任务10个线程。6 个任务获取不同类别的数据。完成任务耗时 48 秒。
想法整理:
1、PHP 需要使用 FOPEN 打开一个页面来启动任务。
2、如果启动多个任务,必须生成多个启动文件(PHP-put and run CMD)
3、如果启动多个任务,必须将多个可执行文件(PYTHON脚本)复制到PYTHON.EXE目录下
4、 LINUX下的思路差不多,只是可执行文件和脚本有一些区别
5、其他扩展自己..
请注意:本文严禁任何公司或个人转载,本文为原创文章。