2012-11-05 40 views
0

我想運行一個php腳本,用於在用戶指定的時間從其他站點(類似於搜尋器)收集數據。防爆。如果用戶選擇抓取5分鐘,即使用戶離開頁面,php也會啓動並運行5分鐘。他然後回來,可以看到結果。即使用戶離開頁面也執行php腳本

回答

1

ignore_user_abort - 設置客戶端斷開連接是否應該中止腳本執行

http://php.net/manual/en/function.ignore-user-abort.php

還有更多的事情要考慮像腳本執行超時。更有效的方法是將工作分派到工作或消息隊列中。

+0

感謝您的回答。我尋找工作隊列,但我無法理解他們。如果有5個用戶希望我抓取某個網站,抓取是否會「同時」開始,還是會一個接一個地開始抓取? – user1798707

+0

這取決於你如何擁有apache設置。通常它會在請求到php之前扼殺請求。 –

0

我認爲你應該看看crontab/cronjob(如果你使用的是Linux網絡服務器)。

然後,您可以創建應該抓取的內容和對象的數據庫。

如果您沒有登錄系統,則應將抓取結果與用戶瀏覽器中的會話或cookie相關聯。

當腳本和數據庫後,您可以讓PHP腳本,收集數據與此命令在SSH /遠程登錄每分鐘運行:

* * * * * php /path/to/script.php

如果您沒有訪問SSH/Telnet外殼,大多數控制面板都具有crontab功能。

+0

嗨。感謝你的回答。我認爲cookie和cron作業的數據庫完全一樣。但直到現在,我不確定是否可以從PHP內部調用cron作業。你知道這是怎麼完成的嗎?我對我讀過的教程有點困惑,因爲他們大多數使用命令行中的cron作業。 – user1798707

相關問題