zoukankan      html  css  js  c++  java
  • 项目中导出功能 超时的问题解决方案

    任务计划超时的问题:

    1.http执行超时的问题,不接收通知,或以钉钉消息方式接收结果;

    2.通过命令行 执行方式;

    3.也可以通过使用ob_start()和ob_end_flush()缓冲PHP输出来避免curl过早返回状态。

    页面导出超时的问题

    导出功能增加,计算中……提示

    计算好后,将计算好的数据存在服务器上;并存入mysql表;后续可发送到邮箱;

    当同一个老师进行 同一个业务进行导出时,直接返回excel文件;

    注意事项:需要区分 时间(当天有效),区分老师(权限不同);

    其他方案

    但我还想提及一种替代cron作业方法的方法:

    您可以从Web服务器控制下的PHP脚本派生CLI PHP脚本。

    如果您的脚本执行时间较长,且必须由某些网站用户操作触发

    (例如,构建一个非常大的存档文件,并在文件完成后通过电子邮件发送下载链接),则此功能尤其有用。

    我通常使用popen()函数从Web服务器PHP脚本派生CLI脚本。

    这样可以很好地将参数传输到新脚本实例,如下所示:

    $bgproc = popen('php "/my/path/my-bckgrnd-proc.php"', 'w');
    if($bgproc===false){
      die('Could not open bgrnd process');
    }else{
      // send params through stdin pipe to bgrnd process:
      $p1 = serialize($param1);
      $p2 = serialize($param2);
      $p3 = serialize($param3);
      fwrite($bgproc, $p1 . "n" . $p2 . "n" . $p3 . "n");
      pclose($bgproc);
    }
    

    在CLI脚本中,您将收到如下参数。。。

    $fp = fopen('php://stdin', 'r');
    $param1 = unserialize(fgets($fp));
    $param2 = unserialize(fgets($fp));
    $param3 = unserialize(fgets($fp));
    fclose($fp);
    

    并对它们执行任何需要Web服务器长时间控制的操作。这种技术在Unix和Windows环境中同样适用。

    一些其他设置

    #php-fpm
    request_terminate_timeout 300s
    max_children 30
    
    #nginx
    send_timeout =300s
    proxy_connect_timeout 300s;
    proxy_send_timeout 300s;
    proxy_read_timeout 300s;
    send_timeout 300s;
    
    

    文章来源:刘俊涛的博客
    欢迎关注公众号、留言、评论,一起学习。

    __________________________________________________________________________________

    若有帮助到您,欢迎点击推荐,您的支持是对我坚持最好的肯定(_)

    你要保守你心,胜过保守一切。

    本文来自博客园,作者:刘俊涛的博客,转载请注明原文链接:https://www.cnblogs.com/lovebing/p/15722822.html

  • 相关阅读:
    粘包现象
    SOCKET的简单介绍
    jQuery基本语法
    Bet(The 2016 ACM-ICPC Asia China-Final Contest 思路题)
    World Cup(The 2016 ACM-ICPC Asia China-Final Contest dfs搜索)
    Number Theory Problem(The 2016 ACM-ICPC Asia China-Final Contest 找规律)
    HDU
    Yin and Yang Stones(思路题)
    在线数学公式编译器
    HDU
  • 原文地址:https://www.cnblogs.com/lovebing/p/15722822.html
Copyright © 2011-2022 走看看