2012-10-01 3 views
0

Zend_Log 작성자는 예를 들어 Amazon DynamoDB와 같은 제 3 자 리소스로 데이터를 보냅니다. 이러한 작업은 시간이 걸리고 백그라운드에서 수행하려고합니다. pcntl_fork()을 사용해 보았지만 Apache에서는 제대로 작동하지 않습니다. PHP와 Zend Framework에서 이러한 로깅 작업의 병렬 실행을 수행하는 방법에 대한 아이디어가 있습니까? 어쩌면 몇 가지 예가 있을까요?Zend_Log 배경에 - 가능합니까?

편집 : 로그 파일을 일부 파일/대기열에 저장하고 나중에 밀어 넣는 것이 분명한 해결책이지만,이 질문에서 찾고있는 것은 아닙니다.

+1

일부 로컬 큐에 넣고 때로는 항목을 아마존으로 보냅니다. – zerkms

+0

기본 정보를 플랫 파일로 저장하고 일반 프로세스를 계속 진행하십시오. 아마존 서비스를 사용하여 로그를 처리하고 처리 된 로그를 지우는 Cronjob (로그 큐를 기반으로 모든 X 분 동안)을 예약하십시오. 각 cronjob은 별도의 프로세스로 실행됩니다. – emaillenin

+0

.. 그 때 뭘 찾고 있니? PHP는 싱글 쓰레드이고 포크는 여전히 프로세스 나 IPC (즉, 플랫 파일이나 공유 메모리)를위한 어떤 형태의 큐를 필요로합니다. –

답변

0

이 문제의 올바른 해결 방법은 syslogZend_Log_Writer_Syslog입니다. Syslog는 로그 클라이언트를 실제 로그 작성자 (제 3 자 리소스)와 분리합니다. Amazon의 작성자는 syslog 서버 측 구성의 일부로 구성되어야합니다.