热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

PHP触发耗时脚本

在一个php脚本中触发另一个耗时很长的php脚本,不想等待,怎么做?curl去触发需要加个超时,如果超时设置短了失败率很高(网络不稳),长了也很耗时,只是相对时间少一点,fsockopen去触发需要加个延时(sleep(*)...

在一个php脚本中触发另一个耗时很长的php脚本,不想等待,怎么做?curl去触发需要加个超时,如果超时设置短了失败率很高(网络不稳),长了也很耗时,只是相对时间少一点,fsockopen去触发需要加个延时(sleep(*)),都要留时间给网络传输数据,不是特别好,有其他解决方法吗?

(必须在服务器端)

回复内容:

在一个php脚本中触发另一个耗时很长的php脚本,不想等待,怎么做?curl去触发需要加个超时,如果超时设置短了失败率很高(网络不稳),长了也很耗时,只是相对时间少一点,fsockopen去触发需要加个延时(sleep(*)),都要留时间给网络传输数据,不是特别好,有其他解决方法吗?

(必须在服务器端)

用fsockopen fwrite()后 加上usleep(1000) 就可以了,目前稳定。

问题移步https://segmentfault.com/q/1010000004590173?_ea=660163

另外关于PHP超时处理要注意:

下面例子是设置数据传输时的超时,不是整个连接的超时。 如果跟我一样问题的想用当前脚本触发另一个耗时很长的php脚本不要用这种方式,这样设置是无效的。这样的设置是代表当前脚本 等待耗时长的另外一个脚本执行完成后返回数据,传输数据时不能超过一秒,不是说连接超过一秒就断开。

$opts = array(
      'http'=>array(
        'timeout'=>1, // 设置超时一秒,此处是大坑。
      )
);
$cOntext= stream_context_create($opts);
file_get_contents('http://www.url.com/', false, $context);

如果用CURL
设置超时

curl_setopt($ch, CURLOPT_TIMEOUT, 1); // 超时秒

curl_setopt($ch,CURLOPT_NOSIGNAL, 1); //设置毫秒时必加
curl_setopt($ch,CURLOPT_TIMEOUT_MS, 1000); //超时毫秒
// 注意:这个超时设置是代表整个连接的超时设置。不管有没连接上,有没传输数据,到时间了就断开,返回false

--- 云网开 用手机建网站

php异步 推荐workerman
http://doc3.workerman.net/faq/async-task.html

Swoole性能比workerman高点 因为是纯c扩展的缘故

但同样workerman比Swoole安装要方便很多

用ajax异步。

Swoole

推荐阅读
  • Allegro总结:1.防焊层(SolderMask):又称绿油层,PCB非布线层,用于制成丝网印板,将不需要焊接的地方涂上防焊剂.在防焊层上预留的焊盘大小要比实际的焊盘大一些,其差值一般 ... [详细]
  • 本文介绍了DataTables插件的官方网站以及其基本特点和使用方法,包括分页处理、数据过滤、数据排序、数据类型检测、列宽度自动适应、CSS定制样式、隐藏列等功能。同时还介绍了其易用性、可扩展性和灵活性,以及国际化和动态创建表格的功能。此外,还提供了参数初始化和延迟加载的示例代码。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 前言:关于跨域CORS1.没有跨域时,ajax默认是带cookie的2.跨域时,两种解决方案:1)服务器端在filter中配置详情:http:blog.csdn.netwzl002 ... [详细]
  • 最近学习了关于使用最为流行的jquery发送请求,在实践中以最为简单的聊天室作为测验的辅助工具,对相关网页开发有一个初步的认识,希望大家能够一起学习进步。首先介绍一下 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 本文介绍了使用AJAX的POST请求实现数据修改功能的方法。通过ajax-post技术,可以实现在输入某个id后,通过ajax技术调用post.jsp修改具有该id记录的姓名的值。文章还提到了AJAX的概念和作用,以及使用async参数和open()方法的注意事项。同时强调了不推荐使用async=false的情况,并解释了JavaScript等待服务器响应的机制。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 禁止程序接收鼠标事件的工具_VNC Viewer for Mac(远程桌面工具)免费版
    VNCViewerforMac是一款运行在Mac平台上的远程桌面工具,vncviewermac版可以帮助您使用Mac的键盘和鼠标来控制远程计算机,操作简 ... [详细]
  • 本文介绍了使用PHP实现断点续传乱序合并文件的方法和源码。由于网络原因,文件需要分割成多个部分发送,因此无法按顺序接收。文章中提供了merge2.php的源码,通过使用shuffle函数打乱文件读取顺序,实现了乱序合并文件的功能。同时,还介绍了filesize、glob、unlink、fopen等相关函数的使用。阅读本文可以了解如何使用PHP实现断点续传乱序合并文件的具体步骤。 ... [详细]
  • PHP语言之所以能有今天的地位,得益于PHP语言设计者一直遵从实用主义,将技术的复杂性隐藏在底层。PHP语言入门简单,容易掌握,程序健壮性好。 ... [详细]
  • php怎么做rpc通信(RPC通信)
    导读:很多朋友问到关于php怎么做rpc通信的相关问题,本文编程笔记就来为大家做个详细解答,供大家参考,希望对大家有所帮助!一起来看看吧!本文目录一览: ... [详细]
  • 哪里有php培训(php培训哪家好)
    导读:今天编程笔记来给各位分享关于哪里有php培训的相关内容,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览: ... [详细]
  • 电商系统设计艺术——秒杀业务设计
    一、秒杀场景人多货少,只有少量的人能够抢购成功。高并发,秒杀业务在开始之前流量比较平稳,开始后流量会直线性的上升。持续时间短࿰ ... [详细]
  • redis 获取不到_redis 缓存锁的实现方法
    1.redis加锁分类redis能用的的加锁命令分表是INCR、SETNX、SET2.第一种锁命令INCR这种加锁的思路是,key不存在,那么key的值 ... [详细]
author-avatar
jimscloudy
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有