mod_perl2에서 포크 할 수있는 반대 사항이 있습니까? 다른 방법으로 mod_perl2에서 백그라운드 프로세스를 실행해야합니까?mod_perl2에서 fork하는 것은 나쁜 생각입니까?
답변
내가 보통 HTTP 요청이 완료된 후 일어날 필요가 아무것도 실행되도록 정리 핸들러를 사용 : 당신이 정말로 포크를해야 할 경우
$r->push_handlers(PerlCleanupHandler => sub { print "I'm doing stuff!" });
, 당신은 그것을 일반적인 방법을하지 말아야을, fork 된 프로세스가 파일 기술자와 소켓처럼 아파치가 필요로하는 다양한 자원을 방해 할 것이기 때문에이 모든 것을 올바르게 처리하기가 어렵다. 대신 Apache2::SubProcess을 사용해보세요.
'PerlCleanupHandler'로 데몬 프로세스를 실행해도 괜찮습니까? 무제한의 실행 시간을 가진 프로세스입니까? – codeholic
데몬을 시작하는 경우 확실히 하위 프로세스를 사용하고 싶습니다. 그렇지 않으면 당신은 깨끗한 단계에 영원히 머물러있는 아파치 쓰레드를 묶을 것이다. – friedo
'Apache2 :: SubProcess'가'ModPerl :: Registry'와 함께 작동하는지 알고 있습니까? 때문에 그것을 실행할 수 없습니다 http://stackoverflow.com/questions/2559093/why-doesnt-apache2subprocess-spawn-my-subprocess – codeholic
reverse proxy을 실행하는 것이 좋습니다. 백엔드에는 자원 집약적 인 작업을 처리하는 중량 프로세스와 정면에서 경량 프로세스를 사용하여 정적 컨텐츠를 반환하는 등의 쉬운 작업을 처리합니다. 무거운 프로세스는 자신이하고있는 일을 마치기를 기다릴 필요가 없기 때문에 쉬운 일을 묶어 두지 않습니다.
프런트 엔드에서 백 엔드 안전하게 일부 데이터를 전달해야합니다. 그리고 나는 데이터가 올바른 방향으로 나아갈 수 있어야합니다. 따라서 코드 체크섬 제어 등 – codeholic
네, 왜 포크가 필요한지 물어 보았습니다. 그리고 나서이 질문은 열렸습니다 : – Ether