微信扫一扫打赏支持

laravel队列基本使用

laravel队列基本使用

一、总结

一句话总结:

laravel任务操作异常简单,php artisan make:job LogJob【创建任务类】,控制器中LogJob::dispatch($data)【分发任务】即可
a、php artisan make:job LogJob【创建任务类】:在【handle方法】中指定任务的具体执行逻辑
b、控制器中LogJob::dispatch($data)【分发任务】

 

 

二、laravel队列基本使用

 

1、在配置文件.env中查看队列连接

QUEUE_CONNECTION=sync

 

 

2、在config/queue.php中查看对应queue连接的信息

 

3、创建任务类

php artisan make:job LogJob

 

会在app目录下创建jobs目录

 

4、完善LogJob类

构造函数中传递数据,handle方法中执行操作(这里的操作是写入日志)

<?php

namespace App\Jobs;

use Illuminate\Bus\Queueable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Support\Facades\Log;

class LogJob implements ShouldQueue
{
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

    //fry自定义的数据
    public $data;

    /**
     * Create a new job instance.
     *
     * @return void
     */
    public function __construct($data)
    {
        //
        $this->data=$data;
    }

    /**
     * Execute the job.
     *
     * @return void
     */
    public function handle()
    {
        //
        Log::info('fry_job_test',$this->data);
    }
}

 

5、在控制器中分发任务

<?php

namespace App\Http\Controllers\JobTest;

use App\Jobs\LogJob;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;

class JobController extends Controller
{
    //
    public function index(){
        //分发任务
        $data=[
          'name'=>'fry'.mt_rand(1,100),
          'email'=>'fry@qq.com',
        ];
        dump($data);
        //分发日志
        LogJob::dispatch($data);
    }
}

 

6、任务运行后的结果显示

日志被成功写入,说明任务运行成功

 

 

 

 

 

posted @ 2021-03-07 04:18  范仁义  阅读(317)  评论(0编辑  收藏  举报