2013-07-05 2 views
0

저는 이것이 IT 군중의 대부분에게는 매우 어리석은 질문 인 것처럼 보일 수 있습니다. 그러나 저는 이런 종류의 아키텍처를 설계 할 때 새로운 것입니다 (PHP로만 개발되었습니다).왜 명령 줄 도구 대신 데몬을 만들어야합니까?

특정 OS 기능을 사용하는 응용 프로그램을 구축하고 있습니다. 최종 사용자는 차례로 C 프로그램을 호출해야하는 PHP 스크립트를 호출하게됩니다. 후자는 OS API를 호출하고 문자열 형식의 결과와 PHP 스크립트에 대한 파일 포인터를 반환합니다.

이제이 C 프로그램을 명령 줄 도구 또는 데몬으로 배포 할 수있는 옵션이 있다는 것을 알고 있습니다. 왜 다른 하나 대신 하나를 선택해야합니까?

+0

확인하려면 파일 포인터를'C'에서'PHP'로 반환하는 것을 의미합니까? – VoidPointer

+0

예, c 프로그램은 파일을 만들고 그 경로를 PHP 스크립트에 전달합니다. 단어 포인터를 사용하면 실제로 부적절했을 수 있습니다. –

답변

0

데몬은 항상 메모리에 백그라운드에서 실행하는 과정이다. 데몬은
프로세스 또는 데이터 변경 등을 모니터링하는 것과 같은 반복 작업 실행에 사용됩니다. 명령 줄 도구는 필요할 때만 실행할 수있는 프로그램입니다. 그래서 내 솔루션은 cmd를 도구를 사용하는 것입니다 이유는 그것을 다시 시작에 대한 책임 것 데몬 충돌하는 경우

  1. 데몬은 항상 메모리에서 실행
  2. ?
  3. 당신은

그래서 내 opinioin이 cmd를 도구입니다 동시 요청 제어을 구현해야합니다. 하지만 어떤 종류의 데몬이 필요하다면 다른 옵션이 있습니다. PHP 스크립트 또는 cmd 도구를 반복적으로 실행해야하는 경우 windows 아래에서 Linux 또는 스케줄러 아래에서 cron을 사용하십시오.

+0

데몬 구현에 대한 나의 관심은 정확하게 메모리와 리소스 소비에 관한 것입니다. 내가 아는 한 명령 줄 도구는 실행을 종료 할 때 단순히 모든 리소스를 해제해야합니다. 제한된 수의 사용자가 사이트에 액세스 할 수 있으므로 동시 액세스 문제가 있어서는 안됩니다. –

+0

예 실행 후 cmd 도구가 메모리를 확보해야합니다. – freeland

0

데몬은 컴퓨터가 시작될 때 시작되고 컴퓨터가 종료 될 때까지 계속 실행되는 프로그램입니다. Apache 웹 서버와 같은 서버 프로그램은 예를 들어 데몬입니다.

빠른 시스템 호출을 수행하고 결과를 반환하는 프로그램을 원한다면 여러 개의 "클라이언트"가 연결할 수있는 서버 프로그램으로 사용되지 않는 한 실제로 데몬으로 사용할 이유가 없습니다. 이 시스템 호출을 요청하십시오.

+0

웹 사이트이므로 대상 고객 기반이 다소 좁기 때문에 여러 개의 클라이언트 요청이있을 수 있지만 제한적입니다. 동시성 문제의 가능성은 거의 없습니다. –

0

데몬은 일반적으로 백그라운드 프로세스이므로 프로그램을 백그라운드에서 모니터링하고 (예 : 지난 1 시간마다 5 분마다 보고서 로그 파일 크기가 증가하는 경우) 사용자가 웹을 볼 때 결과를보고하려면 페이지에서 deamon이 올바른 선택입니다.

대신 즉시 수행 할 수있는 작업 (예 : 현재 로그 파일 크기보고)을 수행하려는 경우 명령 줄 도구를 만들고 유지 관리하기가 더 쉽습니다.

+0

고마워, 그게 내 프로젝트의 범위에 정확히있다. –

0

사이드 노트 : OS 별 기능을 호출하기위한 PHP C++ 확장을 작성할 수도 있습니다.

도구가 동작 X를 수행합니다 (예 : 파일 변환). 빠르고 빠르면 데몬을 쓸 필요가 없습니다. 대몬은 동기식 쓰기/읽기 또는 대기열이 필요할 때 자주 사용됩니다.

명령 줄 nodejs, 여기에 예를 들어 볼 수있다 명령을 래핑하는 요즘 데몬을 쓸 수있는 쉽고 대중적인 방법 : http://blog.nodejitsu.com/keep-a-nodejs-server-up-with-forever

+0

가능한 한 모듈화 된 아키텍처를 유지하고 싶습니다. 첫 번째 구현은 PHP 내에 있지만 나중에 다른 프레임 워크와 함께 프로그램을 호출 할 수도 있습니다. 생각해 줘서 고마워! –