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

ThinkPHP의 예약된 작업 구현 사례

angryTom
angryTom앞으로
2020-03-11 09:50:3311673검색

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

성명:
이 기사는 www.100txy.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제