В настоящее время я пишу онлайн-игру. Теперь я должен проверить, произошло ли событие (проверка метки времени в базе данных) и в зависимости от того, какие действия выполняются. Я должен проверять событие каждую секунду.
Я хотел использовать cronjob, но с помощью cron вы можете запускать скрипт только каждую минуту.
Моя идея состояла в том, чтобы использовать cron и loop 60 раз в моем PHP-скрипте. Но я думаю, что это не лучшее решение.
Итак, каков наилучший способ запуска скрипта каждую секунду?
Почему бы не изменить сценарий так, чтобы он просто повторял код каждую секунду? Это уменьшит накладные расходы синтаксического анализа и будет менее сложным.
Вероятно, вы должны запустить сценарий один раз и использовать цикл с задержкой для достижения желаемого времени. Боковое преимущество заключается в том, что это более эффективно, и вам нужно будет только открыть ресурсы (то есть базы данных) один раз.
Вы не должны этого хотеть: P. Ни один хост не примет ваш cronjob, который работает каждую секунду каждую минуту? Вы можете сэкономить время, которое оно запустило в базе данных, а в следующий раз, когда вы запустите, подсчитайте время между обеими запусками и сделайте необходимые вычисления. каждая секунда – очень плохая идея.
Я искал лучшее решение, но кажется, что моя первая идея с чистым кодом – лучшее решение.
Это мой текущий код:
<?php set_time_limit(60); $start = time(); for ($i = 0; $i < 59; ++$i) { // Do whatever you want here time_sleep_until($start + $i + 1); } ?>
$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 для запуска каждую минуту.