首先明白一点,thinkphp 中的计划任务不是真正意义上的,它是使用一个文件的修改时间差来比较是否执行,并且必须依赖网站的访问才能触发脚本

在 conf 下新建两个文件并配置 tags.php 和 crons.php

配置 tag.php

return array(  
    'app_end'=>array('\Behavior\CronRun'), // 定时任务  
);  

配置 crons.php

return array(  
    'cron_1'=>array('cron1', '10') //cron1要执行的脚本  
)  

cron1 默认在 ThinkPHP\Library\Cron\cron1.php 如果没有 cron 目录则新建一个,cron1.php 自己所要执行的脚本

注意

  • app_end 的路径配置,\Behavior\CronRun 路径要包含 \ 否则不被认为是 Behavior
  • 如果报错 Log::write 相关错误,则打开 ThinkPHP\Library\Behavior\CronRunBehavior.class.php 大约 55 行 \Think\Log::write(implode('',$log));