2011-10-05 82 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

對我來說聽起來像是你正在檢索圖像的網站的問題,你可能也想在那裏檢查。 –