2013-11-07 3 views
0

У меня небольшая проблема, из-за которой я не могу опустить голову. :-)Задержка с задержкой

Я ищу решение или советы по решению проблемы.

The (часть) старой версии кода выглядит следующим образом:

$oMainsite->checktime(); // In the main program 

public function checktime(){ 
    $timeset = $_SESSION['timeset']; 

    if ($_SESSION['timeset'] == ''){ 
     $_SESSION['timeset'] = date('H:i', strtotime("+5 min")); 
    } else { 
     $timeset = $_SESSION['timeset']; 
    } 

    $arr_tijd = getdate(); 
    $uren = $arr_tijd["hours"]; 

    if ($uren < 10){ 
     $uren = 0; $uren .= $arr_tijd["hours"]; 
    } 

    $minuten .= $arr_tijd["minutes"]; 

    if ($minuten < 10){ 
     $minuten = 0; $minuten .= $arr_tijd["minutes"]; 
    } 

    $tijd = $uren; 
    $tijd .= ":"; 
    $tijd .= $minuten; 

    if($timeset <= $tijd){ 
     generate_question(); 
    } 
} 

Часть функции порождают вопрос() выглядит следующим образом:

........ 
$timedelay = rand(3,10); 
$_SESSION['timeset'] = date('H:i', strtotime("+".$timedelay." min")); 
......... 
// Display question 

В главной программе функция checktime() удаляется только при обновлении страницы. Но если пользователь не вводит пользователя, сайт остается бездействующим, что устраняет тот факт, что функция checktime(), а также функция Generate_question() никогда не выполняются.

Есть ли способ выполнить Checktime(), даже если сайт простаивает? Или мне нужно подойти к этому по-другому? Любая помощь приветствуется.

+0

Похоже на задачу [cron job] (http://net.tutsplus.com/tutorials/php/managing-cron-jobs-with-php-2/). – Mike

+0

'sleep();' возможно? –

+0

Используйте 'setinterval' на JS и загрузите свой PHP-файл (конечно же, с помощью функции внутри него). –

ответ

0

Есть ли способ выполнить Checktime(), даже если сайт простаивает? Или мне нужно подойти к этому по-другому? Любая помощь приветствуется.

Да, для этого есть хорошо известные методы. Майк в комментариях предложил вам использовать cron job. Он должен был опубликовать это как ответ, поскольку ссылка более информативна, чем мой пост.

На Linux/BSD хрон это программа, которая работает на заранее определенном интервале, можно задать задачу для запуска один раз в год, каждую минуту, или просто по четвергам каждые 4 часа, и т.д ...

В системах Windows вы, вероятно, будете контролировать это как запланированную задачу, но я не эксперт с серверами Windows.

На мейнфреймах вы либо знаете, что делаете, либо не должны касаться этой системы.

0

Как Simpel это может быть, если вы запишите его на форуме :-)

Для того, чтобы перезагрузить страницу или обновить себя, мы должны использовать следующий код внутри головки тега

<meta http-equiv="refresh" content="5" > 

Атрибут http-equiv = "refresh" требует обновления страницы.

Атрибут content = "5" устанавливает время обновления.

Время, необходимое для перезагрузки страницы, устанавливается с использованием атрибута content. Скажите, хотите ли вы обновить страницу через 10 секунд, установите значение содержимого на 10.

Мы рекомендуем время обновления [интервала перезагрузки] до 5 секунд. Это связано с тем, что вы должны учитывать время загрузки страницы.

Благодарим вас за вклад youre.

+0

WRONG :-) Это не завершает работу. Он также очищает

на сайте. И это, конечно же, не suppost. – jdkos

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