加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

在PHP中处理大量数据,而不需要浏览器超时

发布时间:2020-05-25 09:37:57 所属栏目:PHP 来源:互联网
导读:我有一系列手机号码,大约50,000个.我正在尝试使用第三方API处理和发送批量短信到这些号码,但浏览器会冻结几分钟.我正在寻找一个更好的选择. 数据的处理涉及检查移动电话号码类型(例如CDMA),为所有号码分配唯一的ID以进一步参考,检查网络/国家/地区的独特费用

我有一系列手机号码,大约50,000个.我正在尝试使用第三方API处理和发送批量短信到这些号码,但浏览器会冻结几分钟.我正在寻找一个更好的选择.

数据的处理涉及检查移动电话号码类型(例如CDMA),为所有号码分配唯一的ID以进一步参考,检查网络/国家/地区的独特费用等.

我想到排队数据库中的数据,并使用cron每分钟发送大约5k,但如果有很多消息,那将需要时间.我的其他选择是什么?

我在XAMPP服务器上使用Codeigniter 2.

我会写两个脚本:

文件index.php:

<iframe src="job.php" frameborder="0" scrolling="no" width="1" height="1"></iframe>
<script type="text/javascript">
    function progress(percent){
        document.getElementById('done').innerHTML=percent+'%';
    }
</script><div id="done">0%</div>

文件job.php:

set_time_limit(0);                   // ignore php timeout
ignore_user_abort(true);             // keep on going even if user pulls the plug*
while(ob_get_level())ob_end_clean(); // remove output buffers
ob_implicit_flush(true);             // output stuff directly
// * This absolutely depends on whether you want the user to stop the process
//   or not. For example: You might create a stop button in index.php like so:
//     <a href="javascript:window.frames[0].location='';">Stop!</a>
//     <a href="javascript:window.frames[0].location='job.php';">Start</a>
// But of course,you will need that line of code commented out for this feature to work.

function progress($percent){
    echo '<script type="text/javascript">parent.progress('.$percent.');</script>';
}

$total=count($mobiles);
echo '<!DOCTYPE html><html><head></head><body>'; // webkit hotfix
foreach($mobiles as $i=>$mobile){
    // send sms
    progress($i/$total*100);
}
progress(100);
echo '</body></html>'; // webkit hotfix

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读