2017-09-25 64 views
0

我有一個php文件,我想運行每2秒鐘1分鐘。因爲在我的服務器上,我只能設置min cron 1分鐘。所以我做了這個腳本。正好每2秒運行一次php腳本

<?php 
$start = microtime(true); 
set_time_limit(60); 
for ($i = 0; $i < 59; ++$i) { 
    shell_exec('/usr/local/bin/php /usr/local/www/my_file.php'); 
    time_sleep_until($start + $i + 2); 
} 
?> 

和第二個選擇是。

<?php 
for ($i = 0; $i <= 59; $i+=2) { 
    shell_exec('/usr/local/bin/php /usr/local/www/my_file.php'); 
    sleep(2); 
} 
?> 

但他們都不工作,因爲我的腳本執行時間是50到60秒。所以,它不是每2秒運行一次,而是每50到60秒運行一次。那麼,是否有任何解決方案可以每2秒開始一次新的腳本執行?我沒有任何想法,請幫助我。

+0

試過[cronjobs](https://www.cyberciti.biz/faq/how-do-i-add-jobs-to-cron-under-linux-or-unix - /)? –

+3

如果腳本需要50秒才能完成,則每2秒執行一次沒有意義。你只是給自己問題的併發性,數據訪問,不一致的記錄等 – ADyson

+0

@chade_試過,但我可以設置1分鐘的最小克倫...不是每2秒。 –

回答

2

您可以編寫一個bash腳本,該腳本每2秒鐘執行一次php腳本,以達到指定的數量。而這個bash腳本可以通過cronjob執行。

實施例:

#!/bin/bash 

count=10 

for i in `seq 1 $count`; do 
    /bin/php /path/to/scrip.php & 
    sleep 2 
done 
+0

它的工作。我必須運行腳本1分鐘,所以我更新計數= 30。 –