나는 자원 집약적 인 perl cgi 스크립트를 가지고있다. (완료하는데 약 2 초 걸린다.) 이것은 최대 4 ~ 5 명이 동시에 실행되고있는 경우에만 괜찮습니다. 일반적으로 그렇게됩니다.mod_perl이 연결 당 하나의 프로세스 만 허용하게하려면 어떻게해야합니까?
문제는 사용자가이 스크립트를 호출하는 링크를 클릭하면 새로운 프로세스가 해당 연결 요청을 처리하기 위해 생성되므로 사용자가 여러 번 클릭하면 (참을성이있는 경우) 서버에 과부화가 발생한다는 것입니다. 새로운 프로세스가 실행되며 대부분 프로세스가 중복됩니다.
호스트 당이 프로세스의 인스턴스가 하나만 실행되도록하려면 어떻게해야합니까?
이것은 프론트 엔드 용 이전 프레임 워크를 사용하는 기존 시스템이며 가능한 경우 버튼 클라이언트 측을 비활성화하기 위해 javascript를 사용하지 않으려합니다. 이것을 fast-cgi perl로 변환하는 것은 문제가되지 않습니다. 왜냐하면 이것은 오래된 시스템이기 때문에 빠른 cgi를 아파치에 추가하는 것은이 일이 실행되는 많은 다른 것들을 망칠 수도 있기 때문입니다.
어떻게 그 일을 제안하는 : 잠금 파일을 사용
예제은 fcntl 모듈의 문서와 무리 기능을 읽기? – ysth
은 여전히 내가 원하는 것을하지는 않지만 원래 질문에 대답하므로 받아 들일 것입니다. –