2012-02-22 4 views
1

У меня есть пример ниже:Проверить время окончания сценария

// start time 
// make mysql query here 

for($i = 0; $i < 10; $i++) // for loop 
{ 
// make dig lookup here 

    if (domain found){ 
    // Update database 
    } 

} 

if (time <= 60 sec)// check current finishing time and compare 
{ 
// make my sql update 
} 

То, что я хочу сделать, это проверить, сколько секунд времени после цикла, а затем, если время, необходимое, чтобы закончить цикл меньше 60 секунд, чем запустить обновление mysql. Если вы меня не понимаете, вы можете спросить меня. Извините за язык. Я плохо разбираюсь в английском, и я не был уверен, что это возможно. Спасибо.

ответ

2
$time1 = time(); 
for($i = 0; $i < 10; $i++){ // for loop 

    // make dig lookup here 

} 
$time2 = time(); 

if (($time2 - $time1) < 60){ 

    // make my sql update 

} 
+0

Я тестирую его, и он работает. Спасибо :) – sg552

4
$start = microtime(true); 

[...] 

$end = microtime(true); 

if (($end - $start) < 60) { 

} 
+0

+1, что я собирался отправить, но меня опередил :) –

+1

Это не должно быть 60000? – 472084

+0

@Jleagle: только если вы хотите проверить 60 000 секунд. Из руководства: 'Если get_as_float установлен в TRUE, то microtime() возвращает float, который представляет текущее время в секундах с момента Unix. – webbiedave

1

Во-первых, помните, чтобы закрыть соединение.

В любом случае, решение microtime, данное @webbiedave, хорошо, но у меня были некоторые странные переживания (в основном отрицательные результаты).

Advanced PHP Debugger дал мне лучшие результаты.

Как использовать:

1.First линии вашего сценария

<?php 
    // In the First line of your script 
    apd_set_pprof_trace(); 
    // The rest of your code here 
?> 

2.Запустите сценарий. Этот файл будет создан: apd.dumpdir/pprof_pid.ext

3.Display данные с pprofp

bash-2.05b$ pprofp -R /tmp/pprof.22141.0 
+1

У вас есть пример кода с использованием 'APD'? Мне было бы интересно увидеть его и дать +1 для него. –

+1

Я не думаю, что это то, о чем он просит. Он хочет, чтобы это было сделано автоматически, не нужно входить, посмотреть на файл и затем запустить его обновления вручную. Я думаю, что в этом случае «microtime» - это путь, и это не место для APD. –

+1

Да, ты прав. Но я не думаю, что это хорошая идея выполнить некоторые действия, учитывая время процесса. Только блокировка в используемой таблице изменит все. В любом случае, взгляните на документы APD, это отличный инструмент! – santiagobasulto

Смежные вопросы