질문:
WorkermanLibTimer를 start_gateway.php에 넣고 2초마다 실행하세요. 먼저 각 실행마다 텍스트 조각이 텍스트 파일에 기록됩니다.
php start.php start로 실행하면 문제가 없는데, php start.php start -d로 실행하면 타이머가 실행되지 않는 것 같습니다.
start_gateway.php 코드는 다음과 같습니다
문제 해결 방법:
비즈니스 로직은 onXXX 콜백에서 실행되어야 합니다(매뉴얼에서 강조). 즉, 타이머가 실행되지 않습니다. Worker::runAll();
전에 실행하세요.
Worker::runAll();이 실행되기 전에 실행되는 코드는 메인 프로세스에 속하기 때문에 메인 프로세스의 비즈니스 코드는 하위 프로세스에 상속되므로 결과적으로 예상된 결과.
위의 예에서는 onWorkerStart에 타이머를 넣어서 실행할 수 있습니다. start_businessworker.php의 $businessworker->onWorkerStart 콜백에 넣는 것이 좋습니다.
추천 관련 기사 및 튜토리얼: workerman 튜토리얼
위 내용은 작업자의 타이머가 적용되지 않습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!