2011-08-27 2 views
1

웹 앱을 개발 중이며 기본 스크립트를 백그라운드에서 실행 (deamon)하고 동일한 사용자의 많은 요청을 처리해야합니다.동일한 사용자가 연속적으로 여러 요청을 처리하는 PHP web-app deamon

내 응용 프로그램은 많은 SQL 쿼리를 수행하고 내부 작업을위한 거대한 배열 인 을 생성하며 이는 사용자의 모든 요청에 ​​대해 수행됩니다. 내 목표는 응용 프로그램을 백그라운드에서 실행 상태로 유지하고 사용자 요청에 응답하도록함으로써 성능을 향상시키고 서버 리소스를 완화하는 것입니다. 일단 사용자가 로그 오프하면 나는 데몬 (deamon)을 죽일 수있다.

나는 pcntl_fork()를 사용하여 생각하지만, 어떤 도움이 높게 평가 될 것이다

(나의 이해가 올 경우)에만 CLI 작동! 고맙습니다.

Younes.

+0

그래서 각 웹 요청은 응답이 생성되기 전에 데몬으로부터 정보를 기다릴 것입니까? 또는 SQL 쿼리가 비동기 적으로 수행됩니까? – DaveRandom

+0

[NanoWeb] (http://nanoweb.si.kz/), [phpstack] (http://www.sics.se/~adam/phpstack/), [Nanoserv] (http://nanoserv.si. kz /) 및 기타. 내가 원래 찾던 하나는 생각을 찾지 못했습니다. PHP에서 HTTP 데몬 (deamon)을 사용하여 메모리에있는 모든 객체를 지속시키는 것이 원칙입니다. APC 및 유사한 PHP 캐시보다 훨씬 빠릅니다. symfony2와 같은 좋은 HTTP 추상화를 가진 모든 것들과 함께 작동하고 있다면 싱글 톤을 염두에 두십시오. – hakre

답변

0

거대한 배열을 세션 변수에 저장하거나 액세스간에 memcache를 저장할 수 있습니다. 그것들은 얼마나 거대한 지에 달려 있습니다.

다른 사람은 특정 포트를 수신하는 CLI php "Daemon"을 실행했지만 "일반"(CGI?) PHP 스크립트는 포트 I/O를 통해 통신합니다. 복잡하고 그로 인해 깨지기 쉬운 것 같습니다.

+0

세션에 데이터를 저장하는 것이 하나의 해결책이지만 사전에 생각하고 저장해야 할 항목과 다음 세션에서 다시 작업 할 수있는 작업을 추가하는 것은 물론, 내 생각은 세션 사이에있는 응용 프로그램의 상태를 그대로 유지하는 것입니다. 데스크톱 응용 프로그램. –

관련 문제