2011-10-05 79 views
0

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

棘手的部分是,我们的系统每天早上都会查看每个库存项目,并根据新的供稿交叉检查每个项目的图像列表。如果图像不存在,它会使用CURL操作将新图像覆盖。

正如你可以想象的那样,根据当天的情况,这可能是一个相当费时的操作。我有一个cron工作。如果我手动运行它,取决于负载,它需要1-5分钟的时间,而有时候会是(如每5次尝试一次),它会给出“内部服务器错误”,但不会有任何解释。

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

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

+1

'内部服务器错误',就像服务器在500发生时吐出的内容一样?那些得到登录在服务器的错误日志,比客户端提供的更详细。 –

回答

0

有些主机杀长时间运行的任务regardlesss的set_time_limit 。尝试与他们联系并询问。

+0

我是寄主...哈哈。所以...我的php.ini设置为30秒,但我认为如果你设置set_time_limit它覆盖了ini指令? – dudewad

+0

max_input_time设置为60--是否影响卷曲操作?我在网上找不到任何关于它的资源... – dudewad

2

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

什么是图像的文件大小?不知何故,我认为这可能是由于转移失败,我自己。

+0

图片一般在500k以下。 600x800 powershot-ish照片,非常标准。 – dudewad

+0

的确如此,但我想这也取决于传输速率,响应时间以及所有有趣的东西。 您是否检查过错误日志? –

+0

对我来说听起来像是你正在检索图像的网站的问题,你可能也想在那里检查。 –