HTTP 응답 전송 후 PHP 작업 실행
PHP 5.2에서 mod_php로 실행할 때 HTTP 응답을 보내면 장기 실행 데이터베이스가 중단될 수 있습니다. 요청 및 이메일 처리. 이 문제를 해결하려면 PHP가 클라이언트에 완전한 HTTP 응답을 보낸 다음 추가 기간 동안 작업을 계속 실행할 수 있는 기술을 활용할 수 있습니다.
다음 스니펫이 이를 수행합니다.
ob_end_clean(); header("Connection: close"); ignore_user_abort(); // optional ob_start(); echo ('Text the user will see'); $size = ob_get_length(); header("Content-Length: $size"); ob_end_flush(); // Strange behaviour, will not work flush(); // Unless both are called ! session_write_close(); // Added a line suggested in the comment // Do processing here sleep(30); echo('Text user will never see');
실행 시 스크립트는 즉시 클라이언트에 완전한 HTTP 응답을 보냅니다. 그런 다음 백그라운드에서 데이터베이스 요청 및 이메일 처리를 시작하는데, 이 작업에는 최대 1분이 소요될 수 있습니다. 응답이 전송되면 사용자 상호작용이 중단된다는 점에 유의하세요.
위 내용은 HTTP 응답을 보낸 후 PHP 작업을 실행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!