Я пишу монитор в PHP, который контролирует время работы хоста. Итак, каждые n секунд мне нравится спрашивать хозяина о его статусе. Я мог бы просто сделать cronjob, который выполняет каждую минуту, но я мог бы также сделать что-то вроде этого:Как выполнить функцию каждые n секунд?
while(1)
{
check_status();
sleep(60);
}
Какой самый эффективный способ сделать это?
Но как насчет производительности? Или это не имеет существенного значения? Я знаю, что PHP не лучший инструмент для него, он должен быть POC;) – f4der
Предоставление единого процесса (вашего PHP), работающего на постоянной основе, будет стоить дороже, чем запуск его на регулярной основе. У вас будут небольшие накладные расходы на уровне ввода-вывода (загрузка файла, запуск PHP-интерпретатора ...), но, вероятно, он будет очень и очень мал;). НО (важно): не забывайте управлять случаем, когда ваш PHP будет запущен два раза. Это произойдет, если одно исполнение длится более 60 секунд, crontab запустит его до того, как первое будет иметь время до конца. – Koreth