我已經寫了一個PHP腳本,通過SSH和nohup運行,意在處理來自數據庫的記錄,並與他們做東西(例如,處理一些圖像,更新一些行)。php cli腳本掛起沒有消息
它適用於小負載,高達10k條記錄。我有一些處理大約40k個記錄的較大數據集(我不瞭解,但是當每個記錄需要下載和處理多達50個圖像時,這會增加很多工作量)。
較大的數據集可能需要數天處理。有時我會在調試日誌中看到內存錯誤,這些錯誤足夠清楚 - 但有時腳本看起來像是「死亡」或者對我來說是殭屍。我的調試日誌尾部停止,沒有錯誤消息,nohup日誌的尾部沒有錯誤,並且過程仍然顯示在ps列表中,看起來像這樣 -
26075 pts/0 S 745: 01/usr/bin/php ./import.php
但是沒有工作完成。
任何人都可以給我一些想法,爲什麼一個過程會剛剛退出?就我所知,顯而易見的事情(如php腳本超時和內存問題)並不是一個因素。
感謝您的任何提示
PS--這是託管在GoDaddy的VDS(不是我的選擇)。我有點懷疑,儘管覆蓋了我的代碼(例如set_time_limit(0);),但是godaddy具有某種限制,可能會觸發我。
(1)你不能把處理分成更小的塊嗎? (2)你爲什麼用nohup而不是screen? – 2010-05-02 20:08:47
好吧,它一次運行500批次的記錄。我相信還有其他策略可以分擔負擔,但看起來這是合理的,這只是耗時。初次導入後,記錄更新要小得多,而且非常易於管理。 我已閱讀關於屏幕,但我沒有經歷過它 - 屏幕的優勢是什麼? 謝謝 – julio 2010-05-02 20:17:54