tp5.1中的php 操持任务的实现,实质上可以分为两种第一种封装在框架内部,在crontab -e中只要添加一条,然后在框架内去扩展内容就好了(Laravel的schedule
,任务调度),这种自由度比较高,也比较方便。第二种:创建好PHP的实行脚本,在crontab中实行脚本,或者再写一个.sh 在crontab中实行,这种就须要在做事器上去实行一些文件,相对而言,比较麻烦,当然效果还是一样的。
方法1.创建一个php脚本,1.php,创建一个test.sh ,授予权限 chmod + x test.sh ,个中有个把稳点 当时我去实行cd 命令的时候直接报错了,后来缘故原由找到了,是由于你写.sh的文件 是在windows ,然后在上传到liunx 做事器. windows 的编码格式是docs 而liunx 只能是unix. 办理办法:1. vi test.sh 文件 2.通过 :set ff 你会创造该文件的格式fomat=docs 3. 通过 :set ff=unix 然后 :x或:wq 保存并退出。
/usr/bin/php /data/wwwroot/default/1.php
末了在crontab中,一分钟实行一次,输出到log中去,查验效果就可以了。大略自测的方法 直接在test.sh 所在目录直接./test.sh或者是sh test.sh 就可以查看脚本运行结果了
/1 sh /data/wwwroot/default/test.sh 2 >>/data/wwwroot/default/log.txt
方法2.利用tp自带的think自定义command 功能,在application/模块/新建一个command文件夹/Crontab.class.php,个中的class可以省略,如果在配置的app.php中关闭了class_suffix,修正文件名为Crontab.php
namespace appapicommand;
use thinkconsoleCommand;
use thinkconsoleOutput;
class Crontab extends Command
protected function configure(){
$this->setName('Crontab')->setDescription(\"大众操持任务 Crontab\"大众);
protected function execute(Input $input, Output $output){
$output->writeln('Date Crontab job start...');
$output->writeln('Date Crontab job end...');
配置command.php文件,位置在application/command.php
return ['appapicommandCrontab'];
打开命令行,运行php think Test命令test命令execute方法中运行的方法就会运行。剩下来的便是写一个Crontab.sh来实行,把稳格式
cd /data/wwwroot/default/purenfort-api
/usr/bin/php think Crontab
末了在crontab中,一分钟实行一次,输出到log中去,查验效果就可以了大略自测的方法直接在Crontab.sh所在目录直接 ./Crontab.sh或者是sh Crontab.sh 就可以查看脚本运行结果了 。把稳php在shell脚本中要写全路径,把稳.sh脚本权限、编码格式问题。其他就没啥了。