1、建议你读写数据和下载图片分开,各用不同的进程完成。
网站建设哪家好,找创新互联!专注于网页设计、网站建设、微信开发、微信小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了富川免费建站欢迎大家使用!
比如说,取数据用get-data.php,下载图片用get-image.php。
2、多进程的话,php可以简单的用pcntl_fork()。这样可以并发多个子进程。
但是我不建议你用fork,我建议你安装一个gearman worker。这样你要并发几个,就启几个worker,写代码简单,根本不用在代码里考虑thread啊,process等等。
3、综上,解决方案这样:
(1)安装gearman worker。
(2)写一个get-data.php,在crontab里设置它每5分钟执行一次,只负责读数据,然后把读回来的数据一条一条的扔到 gearman worker的队列里;
然后再写一个处理数据的脚本作为worker,例如叫process-data.php,这个脚本常驻内存。它作为worker从geraman 队列里读出一条一条的数据,然后跟你的数据库老数据比较,进行你的业务逻辑。如果你要10个并发,那就启动10个process-data.php好了。处理完后,如果图片地址有变动需要下载图片,就把图片地址扔到 gearman worker的另一个队列里。
(3)再写一个download-data.php,作为下载图片的worker,同样,你启动10个20个并发随便你。这个进程也常驻内存运行,从gearman worker的图片数据队列里取数据出来,下载图片
4、常驻进程的话,就是在代码里写个while(true)死循环,让它一直运行好了。如果怕内存泄露啥的,你可以每循环10万次退出一下。然后在crontab里设置,每分钟检查一下进程有没有启动,比如说这样启动3个process-data worker进程:
* * * * * flock -xn /tmp/process-data.1.lock -c '/usr/bin/php /process-data.php /dev/null 21'
* * * * * flock -xn /tmp/process-data.2.lock -c '/usr/bin/php /process-data.php /dev/null 21'
* * * * * flock -xn /tmp/process-data.3.lock -c '/usr/bin/php /process-data.php /dev/null 21'
不知道你明白了没有
php导出大量数据Excel的具体操作步骤如下:
1、使用phpstudy搭建一个测试平台,直接访问数据库。
2、下载的phpcms安装包拷贝到IIS目录,开通访问,即可搭建成功。
3、登录网站后台,系统权限,文件目录以及数据库等功能,进行管理。
4、在phpcms后台,扩展,数据库工具,数据库导出,程序池选择phpcmsv9,开始备份数据。
5、打开IIS网站目录,在D:\wwwroot\kmxy\wwwroot\caches\bakup\default文件夹,查看导出的数据库文件。
6、登录phpmyadmin,选择数据库导出,选择Excel格式,即可导出。
大数据的话可以进行以下操作:
减少对数据库的读取,也就是减少调用数据库,
进行数据缓存,
利用数据库的自身优化技术,如索引等
精确查询条件,有利于提高查找速度
大数据对于我们这些从业者来说,是不太喜欢说的一个词。所谓内行看门道,外行看热闹,大数据这两年风风火火,大家都争先恐后的讨论着,但说到如何掌握或者运用,很多人是不知所措的。
私以为,大数据的核心在三个地方:数学+计算机知识+业务
先说说题主说到的编程,我在这里将它纳入计算机知识这一部分,因为编程对于我们来说只是大数据的冰山一角。这两年大数据的发展,绝对不是因为编程语言的进步,很大一部分是由于计算机工具的进步或者硬件的提升。 尤其是现在计算机硬件价格的下跌,以及大数据处理工具的发展,如hadoop,spark等,带来了数据处理能力的飞速提升,才导致了现在大数据的越来越火。
至于我们说的数据挖掘知识和编程语言,这些都是很早以前就已经存在的知识,这几年也没有得到很令人惊喜的新进展(我说的是知识本身,不是指应用)。
总之: 大数据之所以得到人们关注,最重要的是数据处理工具的进步以及数据量的累积(尤其是互联网)
那么是不是说明 掌握编程或者计算机工具就是迈入大数据的关键路径呢?
答案:显然不是,数学才是真正的核心知识。
没错,数学是在数据挖掘领域非常重要的甚至是核心的部分,编程只是工具,真的只是工具。 编程语言有好几十种吗,但是数据挖掘理论知识就那儿点。 你用任何一门语言去实现你的数学思想便可以达到数据挖掘的目标。 学术研究甚至可以抛弃编程,完全只研究算法(注意:这样的话会容易造成纸上谈兵)。
可以写个interface 让别人来实现接口的方法就行了。 任何网页都可以是接口,为了方便数据解析一般都用json和xml响应
下载 PHPExcel
require_once( './PHPExcel/IOFactory.php');
$filePath = 'D:/xxx.xlsx'; //excel 文件名
$objReader = new PHPExcel_Reader_Excel2007(); //具体查看(Documentation/Examples/Reader/exampleReader01.php)
$objPHPExcel = $objReader-load($filePath);
$sheetData = $objPHPExcel-getActiveSheet()-toArray(null,true,true,true);
$insql = 'insert into 表名(x,x,x) valeus';
//遍历数组 $sheetData
//如果有标题 先删除 unset($sheetData[1]);
foreach($sheetData as $k = $data){
$insql .= '('.$data['A'].','.$data['B'].','.$data['C'].'),';
//一次插入100条数据 减少数据库压力
if(($k+1 / 100) == 0){
$insql = rtrim($insql,',').';'; //将最后的逗号替换成分好
//插入数据库 并且重置 字符串 $insql
//或者保存到文件中 利用source 命令插入数据库
}
}