2013-05-09 7 views
1

나는 호스트의 가동 시간을 모니터링하는 모니터를 PHP로 작성하고있다. 그래서 n 초마다 상태에 대해 호스트에게 묻습니다. 간단히 말해서 나는 매 순간을 실행하는 cronjob를 만들 수 있지만, 나는이 같은 것을 할 수있는 :n 초마다 함수를 실행하는 방법은 무엇입니까?

while(1) 
{ 
    check_status(); 
    sleep(60); 
} 

이 작업을 수행하는 가장 효율적인 방법은 무엇입니까?

답변

1

더 좋은 방법은 cron을 사용하는 것입니다.

CRON이 매분 PHP를 시작합니다. PHP가 충돌하면 다시 실행됩니다. 수동으로 PHP를 시작하고 충돌이 발생하면 수동으로 다시 시작해야합니다. 이보다 더 많이 CRON을 사용하면 시스템 부팅시 발생하는 일에 신경을 쓸 필요가 없습니다.

최종 참고 : PHP 정말 사물의 종류를 만들 수있는 가장 좋은 도구가 아닙니다, 기계 재 - 시작하는 경우)

건배,

K.

+1

하지만 성능은 어떻습니까? 아니면 큰 차이를 만들지 않습니까? 나는 PHP가 최선의 도구가 아니라는 것을 알고있다. POC가되어야한다.) – f4der

+0

하나의 프로세스 (PHP)를 영구적으로 실행시키는 것은 정기적으로 실행하는 것보다 비용이 많이 든다. IO Level (파일 로딩, PHP 인터프리터 실행 ...)에서 약간의 오버 헤드가 발생하지만, 아마도 매우 작을 것입니다.). 하지만 (중요) : PHP가 두 번 실행되는 경우를 관리하는 것을 잊지 마십시오. 하나의 실행이 60 초 이상 지속되면 crontab은 첫 번째 실행이 끝나기 전에 실행을 시작합니다. – Koreth

1

크론 작업을 수행하여 프로세스가 자동으로 다시 시작됩니다.

+0

당신은 또한 그것에 대한 신출내기 작업을 만들 수 있습니다. 하지만 성능면에서 차이가 있습니까? – f4der

+0

아무 생각없이, 나는 Upstart를 한번도 사용하지 못했지만, 성능 히트가 스케줄에서 CPU 비용과 비교하여 매 60 초마다 실행 중일 가능성이 높다고 추측 할 수 있습니다. –

관련 문제