>백엔드 개발 >PHP 튜토리얼 >양식 제출 후 백그라운드에서 장기 실행 PHP 스크립트를 어떻게 실행할 수 있습니까?

양식 제출 후 백그라운드에서 장기 실행 PHP 스크립트를 어떻게 실행할 수 있습니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-03 02:22:09336검색

How Can I Run a Long-Running PHP Script in the Background After a Form Submission?

양식 제출 후 백그라운드에서 PHP 스크립트를 실행하는 방법

문제 시나리오

제출된 정보를 처리하고 데이터베이스에 등록하고 구독자 목록에 알림을 보냅니다. 다만, 가입자 수(150명 내외)로 인해 처리하는데 상당한 시간(1분 이상)이 소요됩니다. 이로 인해 사용자는 지연 및 잠재적인 문제를 경험할 수 있습니다.

  • 사용자가 양식을 반복적으로 제출하여 제출이 중복되거나 실패할 수 있습니다.
  • 사용자가 페이지나 브라우저를 조기에 닫아 문제가 발생할 수 있습니다. 브라우저 연결이 끊어진 동안 서버에서 스크립트를 계속 실행합니다.

해결책: 이메일 분리 알림

이 문제를 해결하려면 스크립트의 이메일 알림 부분을 별도의 파일로 분리해야 합니다. 그러나 사용자의 상호 작용 필요성을 없애려면 이 파일을 백그라운드 작업으로 실행하는 것이 필수적입니다.

백그라운드에서 PHP 스크립트 실행

PHP 스크립트를 백그라운드 서비스로 실행하려면 외부 프로세스는 exec 또는 shell_exec를 사용하여 호출해야 합니다.

shell_exec 사용

사용 shell_exec는 알림 프로세스의 로깅을 허용합니다. 다음 명령은 원하는 기능을 구현합니다.

shell_exec("/path/to/php /path/to/send_notifications.php '".$post_id."' 'alert' >> /path/to/alert_log/paging.log &");

명령 끝에 & 문자는 프로세스가 백그라운드에서 실행되어야 함을 나타냅니다.

추가 참고 사항

  • 스크립트 경로 뒤의 추가 변수(작은따옴표로 묶음)는 백그라운드 내 $_SERVER['argv'] 배열을 통해 액세스할 수 있습니다. script.
  • 백그라운드 스크립트의 출력은 >> 연산자입니다.

위 내용은 양식 제출 후 백그라운드에서 장기 실행 PHP 스크립트를 어떻게 실행할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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