2017-10-12 1 views
-1

스크립트 실행을 끝내기 전에 reqeust에 응답을 보낼 수 있는지 궁금합니다.응답을 보내고 스크립트를 계속 실행하십시오 - PHP

예를 들어 내 서버 B (server2server 요청)에 요청을 보내는 서버 A가 있습니다. 서버 A에 대한 응답을 보내는 것 외에도, 다른 api에 대한 컬 요청 (curl reques)을 수행하고 DB에 일부 데이터를 저장해야합니다. 연결을 시간 초과 할 수 있으므로 서버 A가이 추가 작업을 기다리는 것을 원하지 않습니다.

Beanstalkd와 같은 대기열을 사용하는 것이 좋습니다. 그러나 설명 된 방법으로 가능하고이 접근법을 사용하여 위험이 있는지 알고 싶습니다.

+0

예 큐 시스템을 사용할 수 있습니다. –

답변

0

다음과 같이 시도해 볼 수 있습니다.

ignore_user_abort(true); 
set_time_limit(0); 

ob_start(); 
// do initial processing here 
echo $response; // send the response 
header('Connection: close'); 
header('Content-Length: '.ob_get_length()); 
ob_end_flush(); 
ob_flush(); 
flush(); 

// now the request is sent to the browser, but the script is still running 
// so, you can continue... 
관련 문제