看板 Web_Design 關於我們 聯絡資訊
我有寫一個網頁php機器人程式 然後 我透過 <meta http-equiv="refresh" content="5" /> 的方式 讓他每隔幾秒就重新執行一次我的php 程式 這隻只是一個很簡單的抓網頁然後if else的程式而已 平常跑是都沒問題 可是有發現他要是放了個一陣子後 他就會不動了 這邊的一陣子 有可能是一週也可能是一個月甚至以上不定 我會看到瀏覽器一直在轉圈圈 然後猜測可能程式就卡在某一行跑不過去 (因為我有寫讓他可以寄信到我信箱來的功能 然後我發現他一直在重複寄信) 所以上來問看看說 有沒有高手有個甚麼見解之類的 是記憶體問題嗎? 還是甚麼的 這邊附註一下我有用到的功能 php的curl、session、mail、if..else for while等的判斷式與迴圈 當然其他不是很重要的函數就不提了 有人有想法嗎? 另外 有時候掛掉後 要必須整個瀏覽器重開程式才會跑 (這我猜會不會是session的問題? 只是我也不知道該從哪下手) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.126.211.74
tyf99:你讓瀏覽器每5秒就去戳一下php? 04/07 13:07
tyf99:如果執行一次平均6秒,你算算一天會累積多少 threads 04/07 13:11
davidou:執行蓄不會釋放的意思? 04/07 15:24
tyf99:執行完會釋放,但是你有 session,session write 會 block 04/07 20:08
tyf99:所以用了 session 的話,正常下同時只會有一個 thread 在跑 04/07 20:10
tyf99:後面的 threads 全部 queue 住.. 04/07 20:10
tyf99:改用 while loop 和 sleep 去處理,內部設停止條件 04/07 20:13
我程式沒有想要停止說 假設我一直用WHILE loop去跑 瀏覽器自己會強制timeout吧
tyf99:讓 php 自己去重複執行就好 04/07 20:14
tyf99:用瀏覽器去短時間不斷 refresh,是邪道寫法.. 04/07 20:15
※ 編輯: davidou 來自: 59.126.211.74 (04/07 22:01)
tyf99:set_time_limit, ignore_user_abort 04/08 00:41