当前位置:   LINUX > 正文

PHP触发耗时脚本-php教程

php,服务器,https,html,swoole,ajax,DevBox,在线流程图,编程,编程问答,程序员,开发者工具,开发工具,json解析,二维码生成,unix时间戳,在线开发工具,前端开发工具,开发人员工具,站长工具

在一个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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/blog/LINUX/detail/17864
推荐阅读
  • 如何解决《在Ubuntu14.04上安装Jekyll》经验,为你挑选了1个好方法。ruby,rubygems,ruby-on-rails,jekyll,ubuntu,linux,https,bash,DevBox,在线流程图,编程,编程问答... [详细]

  • 如何解决《vim编辑器:如何在不同方向切换分割窗口》经验,为你挑选了1个好方法。linux,vim,split,DevBox,在线流程图,编程,编程问答,程序员,开发者工具,开发工具,json解析,二维码生成,unix时间戳,在线开发工具,... [详细]

  • 如何解决《从错误上自动退出bashshell脚本:set+e似乎没有完成这项工作》经验,为你挑选了2个好方法。linux,error-handling,bash,shell,ubuntu,DevBox,在线流程图,编程,编程问答,程序员,开... [详细]

  • 基于Swoole扩展开发异步高性能的MySQL代理服务器php,服务器,mysql,swoole,sql,DevBox,在线流程图,编程,编程问答,程序员,开发者工具,开发工具,json解析,二维码生成,unix时间戳,在线开发工具,前端开... [详细]

  • 1.使用swoole的tick创建了定时器,每3s去数据库查询需要发送的信息并进行发送,但是运行几天后定时器就不跑了,定时器是在启动worker进程时{代码}php,swoole,DevBox,在线流程图,编程,编程问答,程序员,开发者工具... [详细]

  • 现在网上有很多PHP开发的的教程和关于PHP底层的WIKI,我想如果想开发PHP7的扩展看这些有用吗?还是这些只能开发PHP5几的扩展?php,php-extension,php扩展开发,swoole,html,linux,windows,... [详细]

  • 这篇文章主要介绍了PHP+swoole实现简单多人在线聊天群发的相关资料,需要的朋友可以参考下php_swoole聊天,swoole聊天室,php,swoole,websocket,json,html,javascript,jquery,服... [详细]

  • 这篇文章主要介绍了实现PHP框架系列文章(6)mysql数据库方法的相关资料,需要的朋友可以参考下php_mysql数据库框架,php数据库框架,mysql,sql,php,安全,swoole,DevBox,在线流程图,编程,编程问答,程序... [详细]

  • 同步编程与异步编程的区别在讨论异步PHP的优点之前,让我们快速回顾一下同步编程模型和异步编程模型之间的区别。同步代码是逐行顺序执行的。php,apache,nginx,swoole,websocket,服务器,DevBox,在线流程图,编程... [详细]

  • Swoole,原本不支持在Windows下安装的,所以我们要安装Cygwin来使用。Cygwin官方地址:http:www.cygwin.com;swoole去官方网站下载。swoole,DevBox,在线流程图,编程,编程问答,程序员,开... [详细]

  • swoole完美支持PHP语言,使用纯C语言编写,提供了PHP语言的异步多线程服务器。于是Swoole使用搭建了一个异步服务器,提供异步响应,推送,定时任务等一系列工作是常见的选择。​swoole,php,服务器,udp,mysql,red... [详细]

  • fd是tcp连接的文件描述符,在swoole_server中是客户端的唯一标识符;用apcredismemcacheswoole_table将fd的值保存起来。swoole,redis,php,DevBox,在线流程图,编程,编程问答,程序... [详细]

  • 如何解决《如何使用Selenium连接ChromiumHeadless》经验,为你挑选了2个好方法。java,selenium,headless,chromium,https,go,json,html,websocket,chrome,ub... [详细]

  • 如何解决《由于"signedchar"和"char",系统头文件中的重定义错误》经验,为你挑选了0个好方法。c++,linux,服务器,DevBox,在线流程图,编程,编程问答,程序员,开发者工具,开... [详细]

  • 如何解决《如何在多主机之间创建dockeroverlay网络?》经验,为你挑选了1个好方法。linux,ubuntu,networking,network-programming,docker,DevBox,在线流程图,编程,编程问答,程序... [详细]

  • 如何解决《诊断进程陷入D状态(不间断睡眠/阻塞IO)》经验,为你挑选了1个好方法。c,networking,blocking,linux,DevBox,在线流程图,编程,编程问答,程序员,开发者工具,开发工具,json解析,二维码生成,un... [详细]

  • 目前我的需求是这样的:客户端app(目前只是iosapp)准备通过长连接方式连接到服务器端我已经查阅了相关的资料,php中可以通过swooleworkerman感觉这2个难度有点大,感觉对于socket底层不熟悉的难度太大,php,redi... [详细]

  • 如何解决《Ctrl-p和Ctrl-n在Docker下意外运行》经验,为你挑选了1个好方法。linux,bash,docker,rust,https,容器,ubuntu,json,git,DevBox,在线流程图,编程,编程问答,程序员,开发... [详细]

  • phpSocket框架phpSocket框架,swoole,DevBox,在线流程图,编程,编程问答,程序员,开发者工具,开发工具,json解析,二维码生成,unix时间戳,在线开发工具,前端开发工具,开发人员工具,站长工具phpSocke... [详细]

  • 如何解决《getresuid()和setresuid()有什么作用?》经验,为你挑选了1个好方法。unix,linux,setuid,DevBox,在线流程图,编程,编程问答,程序员,开发者工具,开发工具,json解析,二维码生成,unix... [详细]

相关标签
  

闽ICP备14008679号