PHP의 비동기 셸 실행: 출력 독립성 달성
스크립트를 완료하는 데 상당한 시간이 필요한 경우 PHP를 통해 셸 스크립트를 실행하면 성능 문제가 발생할 수 있습니다. . 이를 완화하려면 이러한 프로세스를 비동기식으로 실행하여 스크립트 완료 또는 출력을 기다리지 않고 PHP 요청이 진행되도록 하는 것이 바람직합니다.
exec() 및 shell_exec()와 같은 기존 함수는 비동기식을 직접 지원하지 않습니다. 실행. 그러나 이 목표를 달성하기 위한 대체 접근 방식이 있습니다.
간단한 해결책은 '&' 연산자를 사용하여 프로세스를 배경화하는 것입니다. 명령에 '&'를 추가하면 셸이 백그라운드에서 명령을 실행하여 PHP 스크립트가 방해 없이 계속되도록 합니다.
명확성을 높이기 위해 다음 예를 고려하세요.
exec("my_shell_script.sh &");
이 시나리오에서는 "my_shell_script.sh"가 백그라운드에서 실행되고 PHP 스크립트는 출력을 기다리지 않고 계속 실행됩니다.
또 다른 방법은 다음과 같습니다. 표준 출력(stdout)과 표준 오류(stderr)를 모두 null 장치로 리디렉션합니다. 명령에 " &> /dev/null 2>&1"을 추가하면 출력과 오류가 삭제되어 성능이 더욱 향상됩니다.
다음은 이 기술을 사용하는 예입니다.
exec("my_shell_script.sh &> /dev/null 2>&1 &");
이러한 기술을 활용하면 PHP에서 쉘 스크립트를 비동기적으로 실행할 수 있으므로 웹 애플리케이션의 응답성을 향상시키는 동시에 장기 실행 작업을 처리할 수 있습니다. 배경.
위 내용은 성능 향상을 위해 PHP에서 비동기 셸 실행을 어떻게 달성할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!