2013-03-15 119 views
-1

我製作了一個PHP腳本,它可以從Twitter獲取推文並將它們保存到文件中以供使用(如JSON)。 問題是,當我執行腳本時,我只收到一次推文,但我想每隔4-5分鐘閱讀一次。PHP每X分鐘執行一次動作

我查看了sleep,但這只是延遲瀏覽器並執行一次操作。 我想要執行 4分鐘,而不是一次延遲一次。

我查看了cron,但是我要運行我的應用程序的服務器不允許使用cron。

TL; DR:任何人都知道在第一次執行後每隔X分鐘執行一次php腳本的好方法?

+1

cron是某種類似的唯一實用解決方案。 – 2013-03-15 08:31:52

+1

你別無選擇,只能在這裏使用cron或類似的東西。 PHP本身沒有提供。 – Eric 2013-03-15 08:32:43

+0

服務器上沒有crons是一個交易斷路器。 PHP需要crons。 – 2013-03-15 08:34:42

回答

2

最好的辦法是安排一個任務,每x分鐘調用一次PHP頁面,而不是試圖保持線程打開。看看CRON JOB

如果您使頁面可公開訪問,則不需要從服務器執行計劃任務。

+0

請再次閱讀我的問題:「我查看了cron,但是我將運行我的應用程序的服務器不允許使用cron。」 – Parrotmaster 2013-03-15 08:31:49

+0

我應該添加CRON作業並不需要在該服務器上。你可以公開它並從任何地方調用它。甚至可以在您的本地PC上設置一個計劃作業來執行瀏覽器,並將地址作爲參數傳入。 – DaveHogan 2013-03-15 10:25:34

1

您可以設置一個Web監控服務(有些是免費的,比如Pingdom),每隔X分鐘向您的頁面發出一次HTTP請求,這應該可以做到。

1

有些提供商只爲您提供運行cron作業。看看他們,他們可以每x分鐘調用一次你的php腳本。

0

你做任何事情,使無需cron這項工作是一個破解。

可以

while (1) { 
    process(...) 
    sleep(4*60) 
} 

但是你會碰到與PHP的執行時間限制的問題。

也許這是一個選項,讓腳本執行一次動作,並讓它每4分鐘從一個支持cron的主機調用?

0

我已經設法自己解決這個問題。如我的問題所述,Javascript和Jquery也是可行的解決方案。 我用一個setInterval在我的twitter.php文件上每X分鐘執行一次$ .get。

+0

但是,您需要始終保持此瀏覽器窗口打開。用cron你可以讓它在沒有可見UI的背景下運行。 – DaveHogan 2013-03-15 10:27:05

+0

@DaveHogan這不是一個可行的解決方案,因爲我無法使用cron,無論它的工作性能如何。 – Parrotmaster 2013-03-15 10:59:15

+0

我還是不明白你爲什麼不能使用cron。你主持人不允許,這很好,我明白。我在回答中想說的是,您可以在世界的任何地方使用另一臺PC,以在指定的時間訪問您的頁面。 – DaveHogan 2013-03-15 11:04:21