2013-09-24 55 views
0

我需要從另一個站點運行PHP腳本,而不使用CRON,以便每當有人來到或刷新頁面時都會調用該腳本。每次用戶刷新頁面時都要從URL運行PHP腳本

該腳本將執行某種更新我的數據庫,它是可能的,它需要數十秒鐘,所以我需要運行PHP腳本,它也不會限制網站訪問者,從那裏的腳本叫做。

但我不想使腳本真正開始了每天有人訪問或刷新頁面時,我想限制一分鐘,所以,在調用腳本之前,我想投入到MySQL數據庫的當前時間某個人(誰是誰 - 誰是第一個)到達或刷新該頁面,並且在只有更新該頁面的人首先比較當前時間與來自最後一次調用腳本的數據庫,並且如果差異是少於一分鐘,因此腳本不會調用,但是如果在數據庫再次將當前時間寫入最後一次腳本執行時執行超過一分鐘。

我不需要運行腳本的任何響應。 重要的是,它不應該影響頁面加載用戶,它應該被調用。

感謝您的幫助

+0

遠程站點上的腳本,但更新你的數據庫?有點困惑 – 2013-09-24 03:48:59

+0

該腳本位於同一臺服務器上,這意味着它與另一個域位於不同的文件夾中。像'web1/index.php'調用'web2/script.php'。 – Edoras

+1

的我只想用EXEC,調用它在後臺'EXEC(「nohup的PHP的WEB2.0 /運行script.php>的/ dev/null的2> &1 &");'' – 2013-09-24 03:58:50

回答

0

好吧,如果JavaScript是不是你可以做PHP分叉多一點研究的一個選項。它基本上是Thread的php版本,但更受限制。所以你實際上可以派生一個PHP子進程在後臺運行,而主進程仍然在做通常的事情。所以它不會影響你的日常工作。

http://php.net/manual/en/function.pcntl-fork.php

+0

好的,我並不反對使用JS,儘管我更喜歡所有在PHP代碼中完成的操作,但我所關心的只是調用PHP腳本並讓它執行。這意味着在那段時間內,任何用戶都將能夠中斷該站點更新的傳輸,或者離開該站點,並且此時我不希望在執行這個站點的過程中被中斷腳本,如果可能的話?作爲CRON工作的替代品。一個PHP腳本,將更新表中的大量數據,所以我想在寫入MySQL觸發時間時要處理一分鐘的延遲。 – Edoras

1

你可以做背景jQuery的AJAX調用後的頁面加載,所以用戶不會等待腳本完成加載頁面

http://api.jquery.com/jQuery.ajax/

不過,我不知道想想你想做的方式是正確的。這是可能的,但我不知道它是否有用。

你可以將你的腳本分成不同的任務嗎?所以你可以在加載頁面之前完成它們,並且用戶不會注意到任何區別。

+0

這仍然會阻止任何後續請求... –

+0

是的,用AJAX調用它並不是做到這一點的方法。他必須找到另一種方式。 –

相關問題