thinkphp6 定时器脚本


     最近做个项目需要用到一些cli脚本进行执行,当时没想那么多,就进行了编写。后来放到linux执行总是有问题,然后一顿搜索,搜到一个是方法需要修改源代码,试了下,可以执行,在windows本地环境下可以,Linux下环境就不行了。这个坑只能再添了。最后发现人家thinkphp6提供了这个东西。只不过没注意

     大致步骤如下

1.编写相应的commands命令,

1.输入php think make:command Hello hello
2.修改app\command\Hello 中execute函数自己的逻辑代码
3.在config/console.php注册命令.

<?php
return [
    'commands' => [
        'hello' => 'app\command\Hello',
    ]
];

自己可以看手册,

 

 

 

 

 

 

2.在宝塔终端配置下定时任务

在宝塔面板创建一个定时任务,写入一段简单的定时shell脚本(注意修改成自己tp6网站根目录)

  1. Path=/www/wwwroot/xxx.com
  2. cd $Path
  3. php think joke_update


完成.这里推荐使用宝塔,宝塔可以看到任务执行结果!
若没有安装宝塔,可以自己写个shell脚本,存为shell文件

  1. #!/bin/bash
  2. Path=/www/wwwroot/xxx.com
  3. cd $Path
  4. php think joke_update

然后在crontab,编写定时表达式,并执行上面的脚本内容即刻,操作上还是宝塔便捷.

或者说你自己编辑crotab 一般就是php路径  执行脚本的路径     

例如在 /usr/local/bin/php,则 crontab -e 中可以这样写:(文件会越来越大)

1
* * * * *  /usr/local/bin/php  /path/yourapp/think  hello>> /path/yourlog/hello .log 2>&1

如果你想把日志分成每天来单独记录,可以这样写:

1
* * * * * /usr/local/bin/php /path/yourapp/think hello>>/path/yourlog/hello_`date -d  'today'  +\%Y-\%m-\%d`.log  2 >& 1

 其实就是 找到 think 这个文件,然后执行命令。   /path/yourapp/think 命令     这个think 脚本一般是在根目录下


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM