• stream_set_timeout (fread 造成了php程序timeout)


    最近在执行fread时候,php出现了 "Fatal error: Maximum execution time of 30 seconds

    fread() :从文件指针 handle 读取最多 length 个字节。

    handle:文件系统指针,是典型地由 fopen() 创建的 resource (资源)。

    length:最多读取 length 个字节。

    fread 一个远端文件的时候出现了超时,表示很头疼,但是最后用stream_set_timeout 暂时挂起了

    下面是我的代码

        stream_set_timeout($fp, 2);  // 2秒后为超时
        $_data = fread($fp, $this->maxlength);
        $info = stream_get_meta_data($fp);
        fclose($fp);
        if ($info['timed_out']) {
            print_r($info); die();
        } else {
            print_r($_data);
        }

    其中 $info 的信息如下:

    Array
    (
        [stream_type] => tcp_socket/ssl
        [mode] => r+
        [unread_bytes] => 0
        [seekable] => 
        [timed_out] => 1
        [blocked] => 1
        [eof] => 
    )
    
    // timed_out = 1 为超时   

    ps: fread($fp,50000) 请求其他机子都是正常的(同样的配置),唯独我的机子出现了这个问题,表示很尴尬!~ 会不断的寻找解决方案,不过如果有哪个大侠能有什么好的点子,跪求~

  • 相关阅读:
    Java中的集合类
    Java中的包装类
    Java中的多线程总结(转)
    Java开发中的23种设计模式详解 (转)
    Java中异常处理和设计
    Jmeter的ForEach控制器
    Jmeter事务控制器
    Jmeter下线程顺序启动
    Jmeter跨线程调用参数
    Jmeter使用Python
  • 原文地址:https://www.cnblogs.com/wilburxu/p/6183154.html
Copyright © 2020-2023  润新知