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 중국어 웹사이트의 기타 관련 기사를 참조하세요!