2015-06-03 27 views
-1

我對主機有一些限制,我的腳本無法運行超過2或3秒。但隨着數據庫變得越來越大,完成所需的時間肯定會增加。在一段時間後讓PHP腳本自行調用

因此,我想到讓腳本停止它正在做的事情,並在2秒後自行調用自己,例如。

首先我試着用cURL然後我用wget做了一些嘗試。但是,等待響應和超時(使用cURL,例如,我只需要ping腳本,而不是等待響應)或使用服務器的權限(我們用於運行wget的函數,例如exec似乎被禁用在我的服務器,或類似的東西)。

你認爲做一個PHP腳本ping /調用本身最好的想法是什麼?

+0

這沒有任何意義。除此之外,爲什麼你會爲不符合你需求的託管環境付錢?您可以以5美元/月的價格購買數字海洋或類似的VPS,並做任何你想做的事情。 – billynoah

+0

聽起來就像你是超過一般的虛擬主機,你已經準備好了虛擬服務器,你不會遇到這種限制。虛擬服務器(也稱爲「雲服務器」)從Rackspace,AWS,Digital Ocean等提供商開始大約10-20美元/月。 – mti2935

+1

如果腳本正在運行,那將使原始腳本運行超過兩個月秒鐘將被你的主人殺死。移動主機或查看cron作業,看看他們是否會支持運行時間超過2秒的用戶。 – Hammerstein

回答

0

在Unix/Linux系統我個人建議安排CRON JOBS保持以一定的間隔

運行腳本

可能是這個SO Link將幫助您

+0

如果問題是他的腳本運行的時間超出了某些提供者的限制,他將無法幫助他。 – billynoah

+0

@billynoah確實。我使用cron每小時啓動腳本。但是我無法控制完成這項工作需要多長時間。在頭幾個月裏將會有5或10秒的時間。但每年2或3分鐘 –

0

PHP腳本通常不叫其他PHP腳本。這是可能產生一個後臺進程如圖所示here,但我不認爲這就是你在之後。如果,所以你最好使用cron,正如上面討論的那樣。

用相同的腳本每隔X秒調用一個函數肯定是可能的,但是這與你想要的相反,因爲它只會延長有問題的腳本的運行時間。

你似乎要問的是,與你的評論相反,有點矛盾。每隔一段時間調用method()的進程仍然是一個長時間運行的進程,並且受到與服務器上的其他進程相同的限制,而不管其可能處於空閒狀態的時間間隔很短。

至於我可以看到你的選擇是:

  • 擴展PHP max_execution_time指令,或者你的系統管理員這樣做,如果他們願意
  • 修改腳本,以便它在限定時間內完成
  • 搬到新服務器
相關問題