【问题标题】:Script Causing Timeout脚本导致超时
【发布时间】:2011-10-05 17:40:39
【问题描述】:

我有一个导致超时的脚本,一些时间。运行需要一段时间,我将解释它的作用: 我们的用户数量很少(假设为 20),我们为所有这些用户管理库存。第三方每天早上(比如早上 6:00 左右)通过 ftp 将库存作为 .csv 文件发送。清单包括项目描述,然后是可变长度的图像 URL 列表。 我们的系统需要下载它还没有的任何图像(99.9% 的时间只有在库存提要中有新商品时才会发生这种情况)。通常库存 Feed 有 95% 相同,因为大部分库存不会从一天到另一天销售。

棘手的部分是,我们的系统每天早上都会查看每个库存商品,并根据新提要交叉检查每个商品的图片列表。如果图像不存在,它会使用 CURL 操作将新图像带过来。

您可以想象,根据一天的不同,这可能是一项相当耗时的操作。我在 cron 工作中使用它。如果我手动运行它,它需要 1-5 分钟,具体取决于负载,并且 sometimes(例如,每 5 次尝试一次)它会给出“内部服务器错误”而没有任何解释.

我首先在文件中使用 set_time_limit(0) 指令,所以我想知道是否需要做其他事情来确保它不会超时?或者你们是否认为传输失败可能会导致问题并使脚本在某些情况下死亡?就像处理不当的失败转会一样——我不知道。与其发布所有代码,我想知道是否可以先获得一些想法,因为脚本非常复杂,我不想浪费任何人的时间。

欢迎任何想法。我想不出为什么它间歇性地不起作用。 作为记录,如果我手动运行两次,它总是第二次运行,但我认为这是因为第一次运行已经处理了大部分下载......

【问题讨论】:

  • 'internal server error',就像当 500 发生时服务器吐出什么?这些会记录在服务器的错误日志中,比客户端提供的详细信息要多得多。

标签: php curl


【解决方案1】:

检查日志以了解确切的 ISE 错误是什么。这可能会导致您检查 PHP 日志,具体取决于系统设置以获得更有限的错误。在没有任何日志的情况下猜测问题,只是最好的猜测。

图片的文件大小是多少?不知何故,我认为这可能是由于传输失败,我自己。

【讨论】:

  • 图片一般在500k以下。 600x800 powershot-ish 照片,非常标准。
  • 没错,但我想这也取决于传输率、响应时间和所有有趣的东西。你检查过错误日志了吗?
  • 对我来说听起来像是您从中检索图像的网站有问题,您可能还想在那里检查一下。
【解决方案2】:

不管set_time_limit 是什么,一些主机都会终止长时间运行的任务。尝试联系他们并询问相关情况。

【讨论】:

  • 我是主持人……哈哈。所以...我的 php.ini 设置为 30 秒,但我认为如果您设置 set_time_limit 它会覆盖 ini 指令?
  • max_input_time 设置为 60——这会影响 curl 操作吗?我在在线资源中找不到任何关于它的信息...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-20
  • 2018-05-16
  • 2016-09-24
  • 2021-10-24
  • 2012-11-14
相关资源
最近更新 更多