2012-03-20 34 views
0

我需要每天晚上運行腳本,通過SOAP連接到Web服務,最大返回45000條記錄。在幾個階段或多次自動化腳本

我可以設置返回多少條記錄,並且在達到max_execution_time限制之前似乎限制爲1000。

將腳本自動化以獲得所有45000條記錄的最佳方法是什麼?當然,有更好的辦法比做45克朗的工作?

+0

您可以增加該腳本的'max_execution_time'。 – Josh 2012-03-20 17:57:14

+0

遠遠超過30秒的默認時間,它使用了memory_limit。我試圖找到一個答案,不需要我將這些設置改爲荒謬的級別 – user813720 2012-03-20 18:00:59

+0

命令行php通常禁用了時間限制。不要通過瀏覽器運行腳本。任何網絡故障或碰撞ESC鍵,瀏覽器將終止連接,腳本將被關閉。 – 2012-03-20 18:04:46

回答

1

如果你想要這個每天晚上自動運行,一個cron作業是一定要走的路。您可以採取兩種基本方法:您可以運行一個查詢後執行查詢的單個作業,每次拖動x個記錄,直到它拉出所有記錄,或者您可以重複運行一個記錄每隔幾分鐘,每次拉出x個記錄。兩者都有優點和缺點,但第一種選擇可能更容易實施。

爲此,我建議您使用set_time_limit()提高時間限制。這應該是非常高的事情,以便您的過程有時間完成,或者如果您沒有限制,則簡單地爲0。如果你還有記憶問題,那麼每次我都會少得多。如果你說最大值是1000,那麼就考慮500.讓你的應用程序一次又一次地循環拖動500條記錄直到它完成。您也可能想要在使用sleep()的每個記錄之間放入一個小的延遲。