>  기사  >  PHP 프레임워크  >  Swoole 프로세스가 닫힌 후 다시 시작하는 방법

Swoole 프로세스가 닫힌 후 다시 시작하는 방법

尚
원래의
2019-12-16 09:32:432893검색

Swoole 프로세스가 닫힌 후 다시 시작하는 방법

Swoole 프로세스가 종료된 후 Server->reload 방법을 사용하여 다시 시작할 수 있습니다.

Server->reload 방법 소개:

모든 Worker/Task 프로세스를 다시 시작합니다.

bool Server->reload(bool $only_reload_taskworkrer = false)

$only_reload_taskworkrer 태스크 프로세스만 다시 시작할지 여부

바쁜 백엔드 서버가 언제든지 요청을 처리하고 있으므로 관리자가 프로세스를 종료하여 서버 프로그램을 종료/다시 시작하면 중간에 코드가 종료될 수 있습니다. 실행.

이 경우 데이터 불일치가 발생합니다. 예를 들어, 거래 시스템에서 결제 로직의 다음 섹션은 결제 로직 이후에 프로세스가 종료되는 것으로 가정합니다. 이로 인해 사용자는 통화를 지불하지만 상품을 배송하지 못하며 그 결과는 매우 심각합니다.

Swoole은 유연한 종료/다시 시작 메커니즘을 제공합니다. 관리자는 특정 신호를 서버에 보내기만 하면 서버의 작업자 프로세스가 안전하게 종료될 수 있습니다.

1. 이 신호를 메인 프로세스/관리 프로세스에 보내면 서버가 안전하게 종료됩니다

2. PHP 코드에서 $serv->shutdown()을 호출하여 이 작업을 완료할 수 있습니다

3. : 메인 프로세스로 전송/관리 프로세스는 모든 작업자 프로세스를 원활하게 다시 시작하는 SIGUSR1 신호를 보냅니다

4. PHP 코드에서 $serv->reload()를 호출하여 이 작업을 완료할 수 있습니다

5. 보호 메커니즘. 재로드가 진행 중일 때 새로운 재시작 신호가 수신되면 폐기됩니다

6. 사용자/그룹이 설정된 경우 작업자 프로세스는 마스터 프로세스에 정보를 보낼 권한이 없을 수 있습니다. 이 경우 루트 계정을 사용해야 하며 재시작하려면 셸에서 kill 명령을 실행해야 합니다

7. addProcess

에 의해 추가된 사용자 프로세스에는 reload 명령이 유효하지 않습니다. 권장 학습: swoole 비디오 튜토리얼

위 내용은 Swoole 프로세스가 닫힌 후 다시 시작하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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