【问题标题】:PHP curl to self to avoid FastCGI timeoutPHP curl to self 以避免 FastCGI 超时
【发布时间】:2014-07-09 23:22:40
【问题描述】:

所以这是我的困境。我需要提取数百个 API 调用的数据,一次解析一个,并记录匹配数据。我的问题是这需要一段时间,而且我在共享主机上,并且我的 FastCGI 繁忙超时无法更改(Web Host 不会这样做,因为我相信共享主机)。所以我完全不知道如何解决这个问题。我不能做 CLI,因为它是一个面向用户的工具,他们在其中输入数据列表,这就是我匹配的内容。因此,一旦收到输入,我需要 PHP 自行运行直到完成(可能需要几个小时)。

我尝试了一切,但没有任何效果。在这一点上尝试欺骗系统我有文件是自引用而不是循环,但这似乎不起作用。我认为那是我唯一的方法(除非有人有更好的主意),我正试图弄清楚如何在 FastCGI 的眼中让每个回调自身“重新启动”。救命!!

【问题讨论】:

    标签: php loops curl timeout fastcgi


    【解决方案1】:

    如果您有权访问exec,那么您始终可以创建另一个 PHP 脚本来实际执行执行,或者创建其他程序或脚本来执行此操作,然后使用 exec 调用该脚本,这样您就可以让它运行在机器上而不是通过 FastCGI。然后,您希望在脚本中使用某种进度跟踪来跟踪它的进度或完成时间,然后有一个页面来检查请求的进度:)

    注意:这对于生产解决方案来说确实不是一个好主意,但它比找出递归 curl 调用更好:)

    【讨论】:

    • 有更好的制作创意吗?也感谢您的输入:)
    • 不要使用共享主机 ;) 这绝对是一个足够好的解决方案,不过,只需清理您的输入以避免执行恶意代码
    • 是的,这是给客户的,哈哈。作为旁注,我刚刚意识到我所做的工作正在发挥作用。它只是中断了浏览器连接,所以我认为它已损坏。我做的事情有什么不好吗?喜欢它的设置如何回发到自己身上?
    • 你会遇到同样的问题,因为每个后续的 curl 调用都需要等待下一个调用完成(递归),所以你的方法不应该改变任何东西
    • 那么脚本在此之后立即结束并且不费心等待响应,所以父脚本不会退出吗?
    猜你喜欢
    • 2017-04-09
    • 2019-04-04
    • 2016-07-11
    • 2012-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-29
    相关资源
    最近更新 更多