2012-07-29 139 views
2

我想要一個腳本,在上午8點到晚上8點之間,在30秒到1分鐘之間隨機運行。PHP睡眠與Cron-job

有沒有什麼東西阻止我從一個循環的30-60秒睡眠中打開一個PHP腳本?然後檢查時間是在上午8點到晚上8點之間?

與Cron工作相比,這樣做的缺點是什麼?克隆職位可以隨機運行嗎?

回答

2

你可以在php中實現這樣一個持久的方案。它的工作原理(只要你使用命令行中的php ...)。唯一可能造成輕微缺點的是在發生故障時沒有恢復。這在使用cron作業時會有所不同:只需啓動一個新的進程即可。然而,這顯然會帶來其他風險,所以沒有更好的方法。

Cron無法在隨機時間啓動進程。但是,您可以按固定的時間間隔啓動進程並使用隨機長度的初始睡眠命令。這應該有同樣的效果。

2

缺點是,他們永遠運行。如果它失敗了,你可能不會馬上意識到它,如果你錯誤地構建它,它會消耗大量的內存和CPU而不釋放它。在使用cronjob時,您可以確定,每次需要時它都會啓動一個乾淨而新鮮的過程。

附加說明:這很容易設置一個cronjob,所以爲什麼不呢?

0,30 8-18 * * * php myscript.php 
+0

謝謝國王,答案是一樣好阿卡斯卡,但想給答案800而不是26,000 :) – 2012-07-29 21:32:12

4

絕對max_execution_time可以阻止你(如果你的主機不讓你把它設置爲無窮大)。睡眠時間沒有考慮在內,但在一段時間後仍然可以達到極限。