>백엔드 개발 >PHP 튜토리얼 >PHP에서 HTTP 응답을 보내고 장기 실행 프로세스를 계속 실행하는 방법은 무엇입니까?

PHP에서 HTTP 응답을 보내고 장기 실행 프로세스를 계속 실행하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-16 12:30:03346검색

How to Send HTTP Responses in PHP and Continue Execution for Long-Running Processes?

PHP에서 HTTP 응답 전송 및 계속 실행

웹 애플리케이션 시간 초과를 초과하는 시간 소모적인 작업에 직면했을 때 개발자는 HTTP를 넘어 PHP 실행을 계속하기 위한 솔루션을 찾는 경우가 많습니다. 응답 전달. 이 특별한 경우, 문제는 PHP가 완전한 HTTP 응답을 즉시 전송하는 동시에 지정된 1분 내에 데이터베이스 및 이메일 처리를 시작하고 완료하도록 하는 것입니다.

가장 간단한 방법은 ob_end_flush( ) 및 플러시()는 전략적으로 작동합니다. 출력 버퍼링 프로세스를 종료하고 사용자에게 표시되는 텍스트와 함께 HTTP 헤더를 해제함으로써 스크립트는 응답 완료를 클라이언트에 효과적으로 알립니다.

다음은 이 접근 방식을 보여주는 예제 코드 조각입니다.

ob_end_clean();
header("Connection: close");
ignore_user_abort(); // Disable abort
ob_start();
echo ('Success message for the user');
$size = ob_get_length();
header("Content-Length: $size");
ob_end_flush(); // Flush the initial content
flush();            // Ensure proper flushing
session_write_close(); 
// Delegate time-consuming tasks here
sleep(30);
echo('Tasks completed after 30 seconds');

이 접근 방식을 사용하면 스크립트는 클라이언트에 성공적인 작업을 알리고 애플리케이션 시간 초과를 초래하지 않고 시간이 많이 걸리는 후속 작업을 시작합니다.

위 내용은 PHP에서 HTTP 응답을 보내고 장기 실행 프로세스를 계속 실행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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