Как запустить скрипт php каждую секунду? - PullRequest
0 голосов
/ 13 января 2012

Я сейчас пишу онлайн-игру.Теперь я должен проверить, произошло ли событие (проверка метки времени в базе данных) и в зависимости от этого выполнить некоторые действия.Я должен проверять событие каждую секунду.

Я хотел использовать cronjob, но с помощью cron вы можете запускать скрипт только каждую минуту.

Моя идея состояла в том, чтобы использовать cron и loop 60 раз.в моем PHP-скрипте.Но я думаю, что это не лучшее решение.

Так какой же лучший способ запускать скрипт каждую секунду?

Ответы [ 5 ]

0 голосов
/ 02 января 2014
$total_time = 0;
$start_time = microtime(true);
while($total_time < 60)
  {
        //DoSomethingHere;
    echo $total_time."\n";
    //sleep(5);
  $total_time =  microtime(true) - $start_time ;
  } 

добавьте это в crontab для запуска каждую минуту.

0 голосов
/ 22 февраля 2012

Я искал лучшее решение, но, похоже, моя первая идея с чистым кодом - лучшее решение.

Это мой текущий код:

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

for ($i = 0; $i < 59; ++$i) {
    // Do whatever you want here
    time_sleep_until($start + $i + 1);
}
?>
0 голосов
/ 13 января 2012

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

0 голосов
/ 13 января 2012

Вы не должны этого хотеть: P. Никакой хост не примет, что ваш cronjob работает каждую секунду каждую минуту? Вы можете сэкономить время, которое он выполнил в базе данных, и при следующем запуске рассчитать время между двумя запусками и выполнить необходимые вычисления. каждая секунда - очень плохая идея.

0 голосов
/ 13 января 2012

Почему бы не изменить скрипт так, чтобы он просто повторял код каждую секунду? Это уменьшит накладные расходы при разборе и станет менее сложным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...