PHP + PYTHON 多任务多线程,后台运行,计划任务-实现方法
2016-03-25 09:42
786 查看
有时候在做程序的时候,会发现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、其他的自己扩展吧..
请注意:本文严禁任何公司或者个人转载,本文是原创文章。
在这个时候就会使用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、其他的自己扩展吧..
请注意:本文严禁任何公司或者个人转载,本文是原创文章。
相关文章推荐
- Python信号处理模块signal
- python中字典(dict)常见用法
- python2.7:模块安装4种方法
- Python基础教程
- python写个图片爬虫
- python中元组(tuple)用法总结
- python
- 转载一篇python类的博文
- Python入门 之 dict
- Python-pip 安装失败问题解决
- 初始Python类
- Python基础教程之正则表达式基本语法以及re模块
- 用Python实现斐波那契(Fibonacci)函数
- python Django批量导入不重复数据
- python Django批量导入数据
- python Django框架实现自定义表单提交
- ubuntu ,python 安装pillow
- Python学习第十一天
- Python学习第十二天
- 维比特(vibiter)算法python