- 浏览: 39845 次
- 性别:
- 来自: 山西
文章分类
最新评论
-
jimoshutong:
看起来有点小复杂啊
明河的shareList jQuery插件分析 -
dasangshu:
也可以在php.ini 里面设置 max_execution ...
php
<!-- [if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:PunctuationKerning/> <w:DrawingGridVerticalSpacing>7.8 磅</w:DrawingGridVerticalSpacing> <w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery> <w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery> <w:ValidateAgainstSchemas/> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:Compatibility> <w:SpaceForUL/> <w:BalanceSingleByteDoubleByteWidth/> <w:DoNotLeaveBackslashAlone/> <w:ULTrailSpace/> <w:DoNotExpandShiftReturn/> <w:AdjustLineHeightInTable/> <w:BreakWrappedTables/> <w:SnapToGridInCell/> <w:WrapTextWithPunct/> <w:UseAsianBreakRules/> <w:DontGrowAutofit/> <w:UseFELayout/> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!-- [if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" LatentStyleCount="156"> </w:LatentStyles> </xml><![endif]--><!-- [if gte mso 10]> <style><!--mce:0-->
最近在公司的项目中,有一个功能,将 EXECL 中的数据批量导入到数据库里。 本地并发只能通过语言自己的特性在程序本身实现多任务效果,一般来说现在的语言会通过多线程或多进程的方式来实现。由于 PHP 不支持多线程,目前只能采用多进程方式,让操作系统来帮助实现本地并发。
public function httpRequest($params){ //{"header":{"operation":"api.getScoreData"}, "params":{"cname":"ddddd","cpwd":"ddddd"}} $data = array("tb" =>$params); // return json data $data_string = json_encode($data); $tmp = $params[0]['savename']; $pid = $params['project_id']; // request url host http://localhost/webinsights/adminLink.php/Link/test/$tmp/$pid //$url = U("Link/test/$tmp","$pid"); $ch = curl_init("http://localhost/webinsights/adminLink.php/Link/writeDataBase/$tmp/$pid"); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_TIMEOUT, 1); curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json', 'Content-Length: ' . strlen($data_string)) ); curl_exec($ch); curl_close($ch); } public function writeDataBase(){ //测试 php 异步 执行 //sleep(10); $execlname = $_REQUEST['_URL_'][2]; $project_id = $_REQUEST['_URL_'][3]; $name = substr($execlname ,0,13 ); $arr = F($name); $model = D('ItemsDetail'); $data = array(); ignore_user_abort(true); // run script in background set_time_limit(0); foreach ( $arr as $k=>$v ) { $data['linkname'] = $v['B']; $data['linkurl'] = $v['C']; $data['linktext'] = $v['F']; $data['loginurl'] = $v['E']; $data['pr'] = $v['D']; $data['project_id'] = $project_id; //info信息 $data['ItemsInfo'] = array( "project_id" => $project_id, "lxname" => $v['A'], "lxqq" => $v['K'], "lxemail" => $v['M'], "lxtel" => $v['L'], "fkname" => $v['J'], "fkaccount" => $v['I'], "fkprice" => $v['H'], ); $model->batAdd($data); sleep(1); } F($name,NULL); exit; } public function httpRequest($params){ //{"header":{"operation":"api.getScoreData"}, "params":{"cname":"ddddd","cpwd":"ddddd"}} $data = array("tb" =>$params); // return json data $data_string = json_encode($data); $tmp = $params[0]['savename']; $pid = $params['project_id']; // request url host http://localhost/webinsights/adminLink.php/Link/test/$tmp/$pid //$url = U("Link/test/$tmp","$pid"); $ch = curl_init("http://localhost/webinsights/adminLink.php/Link/writeDataBase/$tmp/$pid"); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_TIMEOUT, 1); curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json', 'Content-Length: ' . strlen($data_string)) ); curl_exec($ch); curl_close($ch); } public function writeDataBase(){ //测试 php 异步 执行 //sleep(10); $execlname = $_REQUEST['_URL_'][2]; $project_id = $_REQUEST['_URL_'][3]; $name = substr($execlname ,0,13 ); $arr = F($name); $model = D('ItemsDetail'); $data = array(); ignore_user_abort(true); // run script in background set_time_limit(0); foreach ( $arr as $k=>$v ) { $data['linkname'] = $v['B']; $data['linkurl'] = $v['C']; $data['linktext'] = $v['F']; $data['loginurl'] = $v['E']; $data['pr'] = $v['D']; $data['project_id'] = $project_id; //info信息 $data['ItemsInfo'] = array( "project_id" => $project_id, "lxname" => $v['A'], "lxqq" => $v['K'], "lxemail" => $v['M'], "lxtel" => $v['L'], "fkname" => $v['J'], "fkaccount" => $v['I'], "fkprice" => $v['H'], ); $model->batAdd($data); sleep(1); } F($name,NULL); exit; } public function httpRequest($params){ //{"header":{"operation":"api.getScoreData"}, "params":{"cname":"ddddd","cpwd":"ddddd"}} $data = array("tb" =>$params); // return json data $data_string = json_encode($data); $tmp = $params[0]['savename']; $pid = $params['project_id']; // request url host http://localhost/webinsights/adminLink.php/Link/test/$tmp/$pid //$url = U("Link/test/$tmp","$pid"); $ch = curl_init("http://localhost/webinsights/adminLink.php/Link/writeDataBase/$tmp/$pid"); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_TIMEOUT, 1); curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json', 'Content-Length: ' . strlen($data_string)) ); curl_exec($ch); curl_close($ch); } public function writeDataBase(){ //测试 php 异步 执行 //sleep(10); $execlname = $_REQUEST['_URL_'][2]; $project_id = $_REQUEST['_URL_'][3]; $name = substr($execlname ,0,13 ); $arr = F($name); $model = D('ItemsDetail'); $data = array(); ignore_user_abort(true); // run script in background set_time_limit(0); foreach ( $arr as $k=>$v ) { $data['linkname'] = $v['B']; $data['linkurl'] = $v['C']; $data['linktext'] = $v['F']; $data['loginurl'] = $v['E']; $data['pr'] = $v['D']; $data['project_id'] = $project_id; //info信息 $data['ItemsInfo'] = array( "project_id" => $project_id, "lxname" => $v['A'], "lxqq" => $v['K'], "lxemail" => $v['M'], "lxtel" => $v['L'], "fkname" => $v['J'], "fkaccount" => $v['I'], "fkprice" => $v['H'], ); $model->batAdd($data); sleep(1); } F($name,NULL); exit; } <!-- [if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:PunctuationKerning/> <w:DrawingGridVerticalSpacing>7.8 磅</w:DrawingGridVerticalSpacing> <w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery> <w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery> <w:ValidateAgainstSchemas/> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:Compatibility> <w:SpaceForUL/> <w:BalanceSingleByteDoubleByteWidth/> <w:DoNotLeaveBackslashAlone/> <w:ULTrailSpace/> <w:DoNotExpandShiftReturn/> <w:AdjustLineHeightInTable/> <w:BreakWrappedTables/> <w:SnapToGridInCell/> <w:WrapTextWithPunct/> <w:UseAsianBreakRules/> <w:DontGrowAutofit/> <w:UseFELayout/> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!-- [if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" LatentStyleCount="156"> </w:LatentStyles> </xml><![endif]--><!-- [if gte mso 10]> <style><!--mce:1-->
上面是关键代码部分,下面解释一下 ignore_user_abort(true) set_time_limit(0) sleep(1) 这三个 PHP 函数用途
第一个是让 PHP 在后台自己执行代码 其目的是当用户关闭浏览器后后代码仍然在执行,也就说用户只要把 EXECL 文件传入到服务器后,任务就完成了,不需要开着浏览器 直到数据导入完毕。
第二个函数 控制 PHP 的执行时间;
第三个函数 是为了分散服务器压力 这样在用户导入大量的数据过程中 用户可以继续查看部分导入成功的数据信息
关于 httpRequest ()函数的目的是 使用 PHP 开启一个进程
End
发表评论
-
gearmand 环境安装与配置
2014-03-12 18:10 6590Gearman是一个用来把工 ... -
php关于$i++与++$i分析
2013-10-23 14:18 377本文通过VLD工具分析php的opcode,来解释原因,先 ... -
apache
2013-05-07 19:13 0现在我们了解一下 Apache ... -
php正则 前瞻和后顾 分析应用
2012-09-05 17:10 1133做日志分析工作的经常 ... -
将 PHP 模块和 MySQL 模块关联起来
2012-08-10 15:11 1043yum install php-mysql php-gd p ... -
php数组过滤
2012-02-20 17:39 1116//fast filtering values of a a ... -
php+mysql+apache 环境搭建
2012-02-20 13:10 12901.下载apache 下载地址:apache官 ... -
php 缓存代码的坏味道
2012-02-03 15:56 845缓存在Web程序里必不可少,最常见的形式如下: 01 c ... -
php 方法多参数重构
2012-02-03 15:54 1671假设我们要完成一个保存文章的功能,如果采用函数编程的方式,大概 ... -
php windows xdebug的安装使用(1)
2011-12-13 10:43 2141配置 Xdebug zend_extension_ts= ... -
php
2011-11-24 13:55 728<?php ignore_user_abort() ...
相关推荐
【处理器中非阻塞cache技术的研究】 在现代计算机系统中,处理器性能的提升是信息技术发展的关键。非阻塞cache技术作为一种重要的优化手段,旨在解决传统cache技术中存在的性能瓶颈,提高处理器的工作效率。本文将...
Java语言中非阻塞算法的实现.pdf
非阻塞算法在Java语言中的实现是一个复杂而深入的话题,涉及到并发编程、多线程以及高效数据结构的设计。非阻塞算法,也称为无锁算法,主要特点是避免了线程间的互斥,使得多个线程可以同时进行计算,从而提高了系统...
绿色施工中非绿色因素分析及控制对策,杜太志,,绿色施工是实现绿色建筑的重要环节,在施工全过程体现了可持续发展战略。本文对建设项目施工过程的非绿色因素进行分析,然后针对�
本文实例讲述了Python socket非阻塞模块应用。分享给大家供大家参考,具体如下: 一 服务端程序 # 导入模块 import socketserver import random # 定义一个类 class MyServer(socketserver.BaseRequestHandler): #...
现代高速处理器的设计中对于cache技术的研究已经成为了提高处理器性能的关键技术,本文针对在流水线结构中采用非阻塞cache技术进行分析研究,提高cache的命中率,降低缺少代价,提高处理器的性能,并介绍了“龙腾”...
例如,在使用express框架结合mongoose操作MongoDB数据库时,开发者可以利用Node.js的非阻塞特性,使得数据库操作不会阻塞主线程,从而保持应用的响应性和扩展性。即使是处理复杂的业务逻辑,Node.js也可以通过异步...
"半导体照明中非成像光学及应用.pdf" 本文主要讨论半导体照明中非成像光学的应用和发展前景。半导体照明光源是21世纪新的光源形式,具有无可比拟的优点,充分利用功率型LED的优势,将非成像光学原理应用到实际型LED...
在“噪声中非平稳信号的频谱分析”这个主题中,我们将探讨如何在复杂的噪声环境中识别和分析那些不遵循固定频率模式的信号。MATLAB作为一个强大的数学计算和信号处理工具,被广泛用于此类分析。 1. **非平稳信号**...
然而,中非跨境电商的发展也面临着诸多挑战和障碍。 首先,非洲的政治风险较高,这对跨境电商的发展构成了障碍。政治稳定性是国际贸易的基础,但非洲部分国家政治局势动荡,政策的不确定性和变动性较大,这给中国跨...
### 小波分析在股市分析中的应用 股市数据,如股票价格、交易量等,通常呈现出复杂的时间序列特性,包括趋势、周期性和随机波动。传统的分析方法,如随机过程和统计学模型,在处理这类数据时可能受限于其假设条件,...
本文主要分析和比较了在荧光型光纤测温系统中处理荧光余辉非指数分量的数据处理算法,特别是传统算法与Prony算法在非指数分量影响下的应用及精度。 首先,文章指出了在荧光余辉中非指数分量存在的问题。在高精度...
移动应用中非权限相关隐私数据的识别方法
《中非跨境电商发展面临的障碍分析与对策探讨》 在当今全球化的背景下,电子商务已经成为国际贸易的重要组成部分,而中非跨境电商作为其中一环,更是受到了广泛关注。然而,中非跨境电商的发展并非一帆风顺,诸多...
在中非共和国班吉的主要妇产医院,2000年进行的一项研究表明,秘密堕胎(CAs)占该服务记录的所有堕胎的43.4%。 我们研究的目的是评估过去4年中有关医疗保健管理工作的CA的演变。 患者和方法:我们进行了为期4年...
【电力系统谐波测量】电力系统谐波测量是指对电力系统中非正弦波形的电流和电压进行分析,以确定其中的谐波成分。谐波是由于非线性负载的存在,使得电流或电压不再呈现纯正弦波形,这可能导致电网效率下降、设备寿命...
《2021年中非电子商务报告》详细探讨了中非地区电子商务的发展、潜力与政策影响,重点关注移动服务在促进电子商务中的作用。本报告揭示了全球及区域电子商务的趋势,为中非地区的电子商务提供了深入的洞察。 一、...