2016-03-06 60 views
0

我需要每秒運行一次php腳本,無論它運行多長時間。 試圖做這樣的說法:每秒精確運行php腳本?

#!/usr/bin/python 

import threading, time, os 

def f(): 
    os.system('php /var/www/test/artisan time:server > /dev/null &') 
    threading.Timer(1, f).start() 

f() 

但是PHP腳本不等間隔執行。多一點或少一點秒。提示如何正確地製作恰好一秒的間隔?不一定與蟒蛇。

+0

@RiggsFolly Cron作業不支持,我不認爲 – iJamesPHP

+0

不幸的是,最小的cron間隔爲1分鐘 –

+0

謝謝@iJamesPHP我忘記了 – RiggsFolly

回答

3
<?php 
set_time_limit(60); 
$start = time(); 

for ($i = 0; $i < 59; ++$i) { 
    // Do whatever you want here 
    time_sleep_until($start + $i + 1); 
} 
?> 
+1

謝謝。在我的情況下,我不得不添加「59」($ i <= 59),它工作正常。 –

1

正好在一秒間隔內完成執行的腳本(如1000000μs)幾乎不可能僅僅因爲處理的工作原理而實現。

這就要求:

  1. 的滋生正是每1000000μs
  2. 一個隨時可以接受運行進程(沒有其他負載)始終需要相同數量的
  3. 的工藝CPU的進程執行時間

您可能可以獲得其中的一個或兩個,但所有三個都不現實。 3號將是主要問題。