> PHP 프레임워크 > ThinkPHP > ThinkPHP의 예약된 작업 구현 사례

ThinkPHP의 예약된 작업 구현 사례

angryTom
풀어 주다: 2020-03-11 09:50:33
앞으로
11709명이 탐색했습니다.

이 글에서는 ThinkPHP를 사용하여 예약된 작업을 구현하는 방법과 cron을 사용하여 예약된 작업을 구현하는 방법을 소개합니다. thinkphp를 배우는 친구들에게 도움이 되길 바랍니다!

ThinkPHP의 예약된 작업 구현 사례

ThinkPHP의 예약된 작업 구현 Cases

일반적인 예약 작업 Linux의 crontab 예약 작업으로, 스크립트를 작성하여 실행되며 백그라운드에서 루프로 실행됩니다. 그런데 가끔 서버 권한이 없거나 독립적인 서버가 없는 경우가 있는데 어떻게 해야 할까요? 실제로 프로젝트에 액세스하는 동안 트리거되는 또 다른 유형의 수동 예약 작업이 있습니다. 수동 예약 작업은 일반적으로 가상 호스트에 사용됩니다. 서버 권한이 없으면 코드를 통해서만 구현할 수 있기 때문입니다. 이 두 가지 예약된 작업 간의 차이점을 분석하기 위해 thinkPHP를 예로 들어 보겠습니다.

(추천 튜토리얼: thinkphp 튜토리얼)

수동 예약 작업

①,tags.php

/Application/Common/Conf 디렉토리에 새로운 Tags.php 파일을 생성하세요. (방법 1과 동일)

<?php  
  
return array(  
    //&#39;配置项&#39;=>&#39;配置值&#39;  
    &#39;app_begin&#39; =>array(&#39;Behavior\CronRunBehavior&#39;),  
);
로그인 후 복사

②, crons.php

/Application/Common/Conf 디렉터리에 crons.php 파일을 새로 생성합니다. (1번 방법과 다르므로 차이점에 주의해주세요.)

<?php  
  
return array(  
    //myplan为我们计划定时执行的方法文件,2是间隔时间,nextruntime下次执行时间  
    //此文件位于/Application/Cron/目录下  
    &#39;cron&#39; => array(&#39;myplan&#39;, 2, nextruntime),  
);
로그인 후 복사

3, myplan.php

/Application/Common/ 디렉토리에 새로운 Cron 폴더를 생성하고, 그 안에 myplan.php 파일을 새로 생성합니다. .

<?php  
  
echo date("Y-m-d H:i:s")."执行定时任务!" . "\r\n<br>";
로그인 후 복사

이 시점에서 프로젝트의 URL에 액세스할 수 있으며, 그러면 Application/Runtime/ 디렉터리에 ~crons.php 파일이 생성되고 다음과 같은 페이지가 나타납니다.

<?php
return array (
  &#39;cron&#39; => 
  array (
    0 => &#39;myplan&#39;,
    1 => 2,
    2 => 1502089802,
  ),
);
?>
로그인 후 복사

ThinkPHP의 예약된 작업 구현 사례

Active 예약된 작업

1, Linux 서버에 로그인

[root@iZwz924w5t4862mn4tgcyqZ ~]# crontab -e
*/1 * * * * /usr/local/php/bin/php /data/wwwroot/door/test.php//执行PHP文件
*/1 * * * * /usr/bin/curl http://www.100txy.com/wechatapi.php//访问url
로그인 후 복사

2, test.php

<?php
  $txt = "/data/wwwroot/door/test.txt";
  // die(var_dump($txt));
  $date=date(&#39;Y-m-d H:i:s&#39;,time());
  $content = file_get_contents($txt);
  if($content!=&#39;&#39;){
    $arr=explode(&#39;#&#39;,$content);
    $num=$arr[&#39;1&#39;]+1;
    $string=$date.&#39;#&#39;.$num;
  }else{
    $string=$date.&#39;#&#39;.&#39;1&#39;;
  }
  file_put_contents($txt,$string);
  $content_last = file_get_contents($txt);
  return $content_last;
로그인 후 복사

3 편집, 백그라운드에서 test.txt 파일 모니터링

[root@iZwz924w5t4862mn4tgcyqZ ~]# tail -f /data/wwwroot/door/test.txt
로그인 후 복사

ThinkPHP의 예약된 작업 구현 사례

(무료 학습 동영상 튜토리얼 공유: php 동영상 튜토리얼)

위 내용은 ThinkPHP의 예약된 작업 구현 사례의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿