大多數項目在業務發展過程中,都需要修復歷史數據和定時任務來完成一些業務邏輯,這部分通常都需要通過腳本來完成,一般的框架愛也都提供這部分的功能,學習並使用是工作中的基本要求。
基本流程
commands模式運行腳本定時任務基本流程:
- 在
app/Console/Commands/
目錄下創建腳本任務文件 - 在
app/Console/Kernel.php
$commands
數組中添加新建的腳本類 - 在
app/Console/Kernel.php
schedule()
方法中添加腳本定時任務命令
具體實現
創建腳本文件
app/Console/Commands/QingShan/commandQingshan.php
<?php
namespace App\Console\Commands\QingShan;
use Illuminate\Console\Command;
class commandQingshan extends Command
{
// 自定義腳本命令簽名
protected $signature = 'qingshan:commandQingshan';
// 自定義腳本命令描述
protected $description = '這里是腳本命令的描述qingshan';
// 創建一個新的命令實例
public function __construct()
{
parent::__construct();
}
//具體執行的業務內容
public function handle()
{
}
}
注冊腳本
在app/Console/Kernel.php
$commands
數組中追加新建的腳本類
protected $commands = [
'BasicIT\LumenVendorPublish\VendorPublishCommand',
Commands\QingShan\commandQingshan::class
]
執行腳本
查看腳本命令調用方式
- 在項目目錄下執行下面的命令,查看當前可以執行的命令
> php artisan list
在Available commands
下會有一列:
qingshan
qingshan:commandQingshan 這里是腳本命令的描述qingshan
- 執行腳本命令
> php artisan qingshan:commandQingshan
添加到定時任務
在app/Console/Kernel.php
schedule()
方法中添加腳本定時任務命令
// 設置commandQingshan腳本為每天15:00自動執行
protected function schedule(Schedule $schedule)
{
$schedule->command('qingshan:commandQingshan')->dailyAt('15:00');
}
參考資料: