>  기사  >  백엔드 개발  >  PHP가 너무 오랫동안 실행되고 다른 요청에 응답하지 않습니다.

PHP가 너무 오랫동안 실행되고 다른 요청에 응답하지 않습니다.

angryTom
angryTom원래의
2019-10-16 16:09:102219검색

PHP가 너무 오랫동안 실행되고 다른 요청에 응답하지 않습니다.

10분 이상 실행해야 하는 PHP 스크립트는 PHP-FPM에서 실행하면 안 됩니다.

1 PHP-FPM에서 실행되는 PHP 스크립트는 pclose(popen())을 사용하여 스크립트 실행을 차단하지 않고 PHP-CLI 프로세스를 여는 것이 좋습니다.

2. 실행이 완료되면 데이터베이스에 메시지를 삽입합니다.

3. 프런트 데스크는 AJAX 예약 폴링을 통해 메시지 알림을 수행합니다(Zhihu의 메시지 알림과 유사).

PHP-FPM에서 이런 시간이 많이 걸리는 스크립트를 실행해야 한다면 불가능하지 않습니다.

먼저 처리를 위해 이 스크립트를 사전 구성된 독립 PHP-FPM 동적 프로세스 풀(다른 PHP-FPM 프로세스 풀은 다른 포트를 수신함)로 전달하도록 Nginx를 구성해야 합니다. 다른 PHP-FPM 프로세스 풀에 영향을 미칩니다. 또한 동적 프로세스 풀(pm = 동적)은 더 많은 메모리를 소비하는 대신 스크립트를 처리하기 위해 더 많은 프로세스를 동적으로 분기할 수 있습니다. 이 경우 최대 프로세스 수(pm.max_children = 20)를 구성하는 것이 좋습니다. .

HTTP 요청 종료 후에도 PHP-FPM이 계속 업무를 처리하도록 하려면 fastcgi_finish_request()PHP-FPM에서 제공하는 이 함수를 사용하면 됩니다.

추천: "PHP 튜토리얼"

위 내용은 PHP가 너무 오랫동안 실행되고 다른 요청에 응답하지 않습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:PHP가 좋은가요?다음 기사:PHP가 좋은가요?