定时任务

如果我们开发的FastAdmin应用插件有定时任务的需求,可以参考以下方式来实现。

vxhyTPoZRpMKNGIX2+i0FOtwvKWAzgqYIS1f8g==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

我们可以直接在插件控制器目录addons/mydemo/controller创建一个控制器Autotask.php,代码如下:

OAfoHXrLEdYjSUqGYJSPQZd4syde19/2+oEoYQ==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。
<?php
namespace addons\mydemo\controller;

use think\Config;
use think\Db;

/**
 * 定时任务
 */
class Autotask extends \think\addons\Controller
{
    protected $noNeedLogin = ["*"];
    protected $layout = '';

    public function _initialize()
    {
        parent::_initialize();

        if (!$this->request->isCli()) {
            $this->error('只允许在终端进行操作!');
        }
    }

    /**
     * 定时任务逻辑
     */
    public function index()
    {
        //这里编写我们的定时任务逻辑
        echo "done";
        return;
    }
}
gZFqDJBcpLfQrtuE0EdY3JI7qrI2tX+G36VY+w==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

如果使用Linux环境,我们可以使用crontab -e命令后添加以下记录

bGfdVrgHmPpYNqxMr4CmFSvgxNepVViHRau6Jw==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。
# 表示一分钟请求调用一次/addons/mydemo/autotask/index 接口
* * * * * sudo -u www /usr/bin/php /www/yoursite/public/index.php /addons/mydemo/autotask/index > /dev/null  2>&1 &
oUzCgfAIwKrTyLsbTvewdDAkjdHmApTezhZghg==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

请注意将其中/usr/bin/php替换为你的PHP文件的路径,/www/yoursite/public/index.php替换为你站点index.php的正确路径

QywhNECtmbiAcfugqOnsUGspOBa9JdeUVf91KQ==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

如果我们在Windows环境下需要使用定时任务进行测试,建议安装使用宝塔面板,然后在宝塔面板中的计划任务中添加一条自定义Shell脚本,脚本内容为:

FDbldmjHPhzgYyJrMF9O3nHj4yKrC+yI+6H3tA==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。
C:\BtSoft\php\72\php.exe C:\wwwroot\www.fa.com\public\index.php /addons/mydemo/autotask/index
mZNYRSbpHrvOqVFy6KjV/HIeMIoBEHwlTAIb/g==著作权归作者所有,未经许可,禁止转载、复制此文档的任何内容。

请注意将其中的C:\BtSoft\php\72\php.exe修改为你使用的PHP版本的正确路径,C:\wwwroot\www.fa.com\public\index.php修改为你使用的站点index.php的正确路径。

文档最后更新时间:2024-09-12 10:21:41
著作权归应用插件开发者所有,未经许可,禁止转载、复制此文档的任何内容。

文档
目录

深色
模式

切换
宽度