## 定时任务
如果我们开发的`FastAdmin`应用插件有定时任务的需求,可以参考以下方式来实现。
我们可以直接在插件控制器目录`addons/mydemo/controller`创建一个控制器`Autotask.php`,代码如下:
~~~php
<?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;
}
}
~~~
然后我们在`crontab -e`中使用
~~~bash
# 表示一分钟请求调用一次/addons/mydemo/autotask/index 接口
* * * * * sudo -u www /usr/bin/php /www/yoursite/public/index.php /addons/mydemo/autotask/index > /dev/null 2>&1 &
~~~
如果我们在`Windows`环境下需要使用定时任务进行测试,建议安装使用宝塔面板,然后在宝塔面板中的计划任务中添加一条自定义`Shell脚本`,脚本内容为:
~~~bash
C:\BtSoft\php\72\php.exe C:\wwwroot\www.fa.com\public\index.php /addons/mydemo/autotask/index
~~~
请注意将其中的`C:\BtSoft\php\72\php.exe`修改为你使用的`PHP`版本的正确路径,`C:\wwwroot\www.fa.com\public\index.php`修改为你使用的网站`index.php`的正确路径。