PHP 프레임 워 크 Swole 타이머 타이머 특성 분석
우선,각종 업무 형 시스템 에서 서버 가 배경 에서 관련 데 이 터 를 스 캔 하고 해당 하 는 통계,알림 등 조작 을 해 야 한다.
예 를 들 어 하나의 프로젝트 관리 시스템 에 대해 매일 특정한 시간 안에 모든 임무 의 집행,만기 상황,전체 프로젝트 의 진도 등 을 통계 하고 통계 상황 에 따라 해당 하 는 통지 처 리 를 해 야 한다.
이런 장면 은 어떻게 프로 그래 밍 하여 실현 합 니까?
일반적인 프로 그래 밍 방식 으로 는 자동 트리거 와 통 계 를 실현 할 수 없다.물론 간단 한 사고방식 은 시스템 에 유리 한 cron job 메커니즘 이다.그러나 이런 방식 은 배치 와 신뢰성 에 있어 비교적 많은 인위적인 조작 요소 가 필요 하 다.
Swoole 은 c 로 개 발 된 phop 확장 으로 phop 을 통 해 고성능 웹 서버 를 구현 할 수 있 으 며 타이머 Timer,작업 대기 열 Task 기능 도 내장 되 어 있 습 니 다.이렇게 하면 swoole 를 바탕 으로 프로그램 차원 에서 실현 방식 을 제어 하고 외부 도구-독립 된 메시지 큐 서버,정시 작업 관리 도구 등에 대한 의존 도 를 줄 일 수 있 습 니 다.
swoole 의 강력 한 점 은 프로 세 스 모델 의 디자인 에 있 습 니 다.비동기 문 제 를 해결 할 뿐만 아니 라 병행 도 해결 합 니 다.용법 은 다음 과 같다.
swoole_server_addtimer($serv, 10);
두 번 째 매개 변 수 는 타이머 의 간격 이 고 단 위 는 초 입 니 다.swoole 타이머 의 최소 알 갱 이 는 1 초 입 니 다.여러 개의 타 이 머 를 지원 합 니 다.같은 간격 으로 타이머 가 두 개 존재 하지 않도록 주의 하 세 요.타 이 머 를 추가 한 후 리 셋 함 수 를 써 야 합 니 다.구체 적 인 코드 는 다음 과 같다.
swoole_server_handler($serv, 'onTimer', my_OnTimer);
function my_OnTimer($serv, $interval)
{
echo "Timer[$interval] is call
";
}
Task 모듈 은 웹 im 에서 방송 을 보 내 는 등 비동기 적 인 느 린 작업 을 하 는 데 사 용 됩 니 다.node.js 와 같이 10 만 개의 연결 이 있 으 면 방송 을 보 낼 때 10 만 번 순환 합 니 다.이 럴 때 프로그램 은 아무것도 할 수 없고 새로운 연결 을 받 아들 일 수 없고 가방 도 받 을 수 없습니다.swoole 가 다 르 기 때문에 task 프로 세 스에 던 진 후,당신 의 reactor,worker 가 놓 치지 않 습 니 다.작업 이 완료 되면 워 커 프로 세 스에 이 작업 이 완료 되 었 음 을 알려 줍 니 다.
물론 task 모듈 의 역할 은 뿐만 아니 라 PHP 의 데이터베이스 연결 풀,비동기 대기 열 등 을 실현 하기 위해 서 는 더 발굴 해 야 합 니 다.
관심 이 있 는 독 자 는 본 고 에서 말 한 사례 코드 를 테스트 하고 자신의 프로젝트 수요 에 따라 그 용법 을 계속 발굴 할 수 있다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
laravel에 yo에서 angularJs&coffeescript를 사용할 수 있도록 한다.먼저 yo 명령을 사용할 수 있어야하므로 아래에서 설치 global에 설치한 곳에서 laravel의 프로젝트 루트로 이동. 클라이언트 코드를 관리하는 디렉토리를 만들고 이동합니다. 클라이언트 환경 만들기 이것으로 히...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.