【发布时间】: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 发生时服务器吐出什么?这些会记录在服务器的错误日志中,比客户端提供的详细信息要多得多。