PHP 가 정시 에 임 무 를 수행 하 는 세 가지 방법 에 대한 상세 한 설명

2275 단어 PHP정시 임무
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 명령 에 대해 서도 간단하게 소개 하 였 으 니 여러분 들 이 얻 을 수 있 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기