Laravel應用 -- 腳本任務


大多數項目在業務發展過程中,都需要修復歷史數據和定時任務來完成一些業務邏輯,這部分通常都需要通過腳本來完成,一般的框架愛也都提供這部分的功能,學習並使用是工作中的基本要求。

基本流程

commands模式運行腳本定時任務基本流程:

  1. app/Console/Commands/ 目錄下創建腳本任務文件
  2. app/Console/Kernel.php $commands數組中添加新建的腳本類
  3. 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
]

執行腳本

查看腳本命令調用方式

  1. 在項目目錄下執行下面的命令,查看當前可以執行的命令
> php artisan list

Available commands下會有一列:

qingshan
    qingshan:commandQingshan     這里是腳本命令的描述qingshan
  1. 執行腳本命令
> php artisan qingshan:commandQingshan

添加到定時任務

app/Console/Kernel.php schedule()方法中添加腳本定時任務命令

// 設置commandQingshan腳本為每天15:00自動執行
protected function schedule(Schedule $schedule)
{
    $schedule->command('qingshan:commandQingshan')->dailyAt('15:00');
    
}

參考資料:

Larave5.8中文文檔--Artisan 命令行


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM