웹 애플리케이션에 몇 가지 프로세스가 있으며 실행하는 데 최대 10 분이 걸릴 수 있습니다. 때로는 이러한 프로세스가 사용자에 의해 트리거되고 프로세스가 처리 될 때 출력이 필요할 수 있습니다.php 프로세스를 포킹하고 특정 웹 사용자와 연결
예를 들어, 사용자는 필요한 레코드 몇 개를 찾고 있습니다. 단추를 클릭하여 레코드를 검색하십시오 (이 부분은 이 10 분이 소요될 수 있음). 그들은 계속 다른 일을 할 수 있지만 그들이 반환을 보려면 클릭하십시오 레코드가 시스템에 다운로드로 업데이 트되었습니다.
지금은 프로세스가 실행되는 동안 사용자가 잠깁니다. 나는 긴 프로세스가 완료 될 때까지 기다리지 않아도되도록 자식 프로세스를 포크하는 pcntl_fork()에 대해 알고있다.
$_SESSION
변수에서 요청을 트리거 한 특정 사용자에게 해당 분기 된 프로세스를 묶어서 프로세스가 완료 될 때 사용자를 업데이트 할 수 있는지 궁금합니다. 또한 장기 실행 프로세스에서 사용자를 업데이트하는 가장 좋은 방법입니까?
나는 그 상황에서'pcntl_fork'가 사용되어서는 안된다고 생각합니다. 포크 프로세스 및 멀티 스레드 웹 서버는 문제가있는 것으로 알려져 있습니다. 웹 응용 프로그램의 경우 AJAX를 사용하여 브라우저에 비동기 업데이트를 보낼 수 있습니다. – netcoder