PHP 가 정시 에 임 무 를 수행 하 는 세 가지 방법 에 대한 상세 한 설명
windows 의 계획 임무
4.567917.2.Liux 의 스 크 립 트 프로그램4.567917.3.웹 브 라 우 저 를 정기 적 으로 갱신 합 니 다.
구체 적 실현
1.windows 계획 작업
PHP 는 win 서버 에서 뛰 지 않 고 구체 적 으로 실현 되 는 것 도 깊이 연구 하지 않 습 니 다.인터넷 에서 실현 되 는 원 리 는 아마도 bat 스 크 립 트 를 쓴 다음 에 window 작업 에 이 bat 스 크 립 트 를 추가 하 는 것 입 니 다.
2.Liux 의 스 크 립 트 구현
여 기 는 주로 crontab 명령 을 사용 합 니 다.
사용 방법:
crontab filecrontab [ -u user ] [ -u user ] { -l | -r | -e }
설명:crontab 는 사용자 가 고정 시간 이나 고정 간격 으로 프로그램 을 실행 하도록 하 는 데 사용 된다.
crontab 를 사용 하여 셸 스 크 립 트 를 쓰 고 PHP 에 셸 을 호출 합 니 다.이것 은 Liux 의 특성 을 이용 한 것 입 니 다.PHP 자체 언어의 특성 은 아 닐 것 입 니 다.
3.PHP 는 정시 에 계획 임 무 를 수행 합 니 다.
php 를 사용 하여 브 라 우 저 를 새로 고침 하려 면 몇 가지 문 제 를 해결 해 야 합 니 다.
PHP 스 크 립 트 실행 시간 제한,기본 값 은 30m 해결 방법:settime_limit();또는 PHP.ini 설정 max 수정execution_time 시간(추천 하지 않 음)
클 라 이언 트 브 라 우 저가 닫 히 면 프로그램 이 종 료 될 수 있 습 니 다.해결 방법:ignoreuser_abort 페이지 를 닫 아 도 정상적으로 실 행 됩 니 다.
프로그램 이 계속 실행 되면 많은 자원 을 소모 할 수 있 습 니 다.해결 방법 은 sleep 프로그램 을 사용 하여 잠시 휴면 한 다음 에 실행 합 니 다.
PHP 가 정시 에 실행 되 는 코드:
<?php
ignore_user_abort();// ,PHP .
set_time_limit(3000);// set_time_limit(0)
$interval=5;// 5s
// 1--
do{
echo ' '.time().'<br/>';
sleep($interval);// 5s
}while(true);
// 2---sleep
require_once './curlClass.php';//
$curl = new httpCurl();//
$stime = $curl->getmicrotime();
for($i=0;$i<=10;$i++){
echo ' '.time().'<br/>';
sleep($interval);// 5s
}
ob_flush();
flush();
$etime = $curl->getmicrotime();
echo '<hr>';
echo round(($etime-stime),4);//
테스트 를 해 보 니 효율 이 그리 높 지 않 았 다.요약:
개인 적 으로 PHP 가 정시 에 임 무 를 수행 하 는 효율 이 높 지 않다 고 생각 하 므 로 정시 에 임 무 를 수행 하 는 일 은 셸 에 게 맡 기 는 것 이 좋 습 니 다.
이상 은 PHP 가 정시 에 임 무 를 수행 하 는 세 가지 방법 입 니 다.앞의 글 끝 에 언급 된 crontab 명령 에 대해 서도 간단하게 소개 하 였 으 니 여러분 들 이 얻 을 수 있 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.