나는 호스트의 가동 시간을 모니터링하는 모니터를 PHP로 작성하고있다. 그래서 n 초마다 상태에 대해 호스트에게 묻습니다. 간단히 말해서 나는 매 순간을 실행하는 cronjob를 만들 수 있지만, 나는이 같은 것을 할 수있는 :n 초마다 함수를 실행하는 방법은 무엇입니까?
while(1)
{
check_status();
sleep(60);
}
이 작업을 수행하는 가장 효율적인 방법은 무엇입니까?
나는 호스트의 가동 시간을 모니터링하는 모니터를 PHP로 작성하고있다. 그래서 n 초마다 상태에 대해 호스트에게 묻습니다. 간단히 말해서 나는 매 순간을 실행하는 cronjob를 만들 수 있지만, 나는이 같은 것을 할 수있는 :n 초마다 함수를 실행하는 방법은 무엇입니까?
while(1)
{
check_status();
sleep(60);
}
이 작업을 수행하는 가장 효율적인 방법은 무엇입니까?
더 좋은 방법은 cron을 사용하는 것입니다.
CRON이 매분 PHP를 시작합니다. PHP가 충돌하면 다시 실행됩니다. 수동으로 PHP를 시작하고 충돌이 발생하면 수동으로 다시 시작해야합니다. 이보다 더 많이 CRON을 사용하면 시스템 부팅시 발생하는 일에 신경을 쓸 필요가 없습니다.
최종 참고 : PHP 정말 사물의 종류를 만들 수있는 가장 좋은 도구가 아닙니다, 기계 재 - 시작하는 경우)
건배,
K.
크론 작업을 수행하여 프로세스가 자동으로 다시 시작됩니다.
당신은 또한 그것에 대한 신출내기 작업을 만들 수 있습니다. 하지만 성능면에서 차이가 있습니까? – f4der
아무 생각없이, 나는 Upstart를 한번도 사용하지 못했지만, 성능 히트가 스케줄에서 CPU 비용과 비교하여 매 60 초마다 실행 중일 가능성이 높다고 추측 할 수 있습니다. –
하지만 성능은 어떻습니까? 아니면 큰 차이를 만들지 않습니까? 나는 PHP가 최선의 도구가 아니라는 것을 알고있다. POC가되어야한다.) – f4der
하나의 프로세스 (PHP)를 영구적으로 실행시키는 것은 정기적으로 실행하는 것보다 비용이 많이 든다. IO Level (파일 로딩, PHP 인터프리터 실행 ...)에서 약간의 오버 헤드가 발생하지만, 아마도 매우 작을 것입니다.). 하지만 (중요) : PHP가 두 번 실행되는 경우를 관리하는 것을 잊지 마십시오. 하나의 실행이 60 초 이상 지속되면 crontab은 첫 번째 실행이 끝나기 전에 실행을 시작합니다. – Koreth