有时候在做程序的时候,会发现AJAX来做批量异步不怎么好。而PHP又不支持多线程。效率不高。
在这个时候就会使用PYTHON来做后台多线程操作。
在WINDOWS下比较麻烦,第一:如果是多任务的话,需要几个启动文件,一般一个启动文件为一个PHP文件。
启动文件内是运行CMD的代码
这个是项目下PYTHON的脚本和PHP临时启动文件缓存日志放的目录。
一般在启动文件运行之前需要把PYTHON脚本文件复制到C盘PYTHON.EXE目录下。这样才能正常运行(或者是因为权限问题吧)
所以在启动文件启动之前,让PHP把PYTHON脚本复制到PYTHON.EXE目录下。
然后创建启动文件
启动文件代码如下:(启动文件是放在phpcache 目录下的)
<?php system("C:\\Python27\python.exe C:\\Python27\T21.py >../log/21.log")?>
多个任务需要使用多个启动文件和多个执行文件(PYTHON脚本)。这样才能达到多任务,多线程。
不能几个任务使用一个脚本去操作。
然后使用PHP访问启动文件开启任务执行。
访问代码如下:
然后后台程序就开始运行了。
测试效果:
2万条数据(远程)- 大量数据的情况下,启动6个任务,每个任务10个线程。6个任务分别获取不同类目的数据。 花了48秒完成任务。
思路整理:
1、PHP要用FOPEN来打开一个页面,从而启动任务。
2、如果开启多个任务必须要生成多个启动文件(PHP-放运行CMD的)
3、如果开启多个任务必须要复制多个执行文件(PYTHON脚本)到PYTHON.EXE目录
4、LINUX下的思路也差不多,只是在那个执行文件和脚本下有些区别
5、其他的自己扩展吧..
请注意:本文严禁任何公司或者个人转载,本文是原创文章。