>  기사  >  PHP 프레임워크  >  작업자의 타이머가 적용되지 않습니다.

작업자의 타이머가 적용되지 않습니다.

王林
王林원래의
2019-12-13 09:51:142787검색

작업자의 타이머가 적용되지 않습니다.

질문:

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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