## 定時任務
如果我們開發的`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`的正確路徑。