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 AppJobs;

use IlluminateBusQueueable;
use IlluminateQueueSerializesModels;
use IlluminateQueueInteractsWithQueue;
use IlluminateContractsQueueShouldQueue;
use IlluminateFoundationBusDispatchable;
use IlluminateSupportFacadesLog;

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 AppHttpControllersJobTest;

use AppJobsLogJob;
use IlluminateHttpRequest;
use AppHttpControllersController;

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

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

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

我的旨在学过的东西不再忘记(主要使用艾宾浩斯遗忘曲线算法及其它智能学习复习算法)的偏公益性质的完全免费的编程视频学习网站: fanrenyi.com;有各种前端、后端、算法、大数据、人工智能等课程。
博主25岁,前端后端算法大数据人工智能都有兴趣。
大家有啥都可以加博主联系方式(qq404006308,微信fan404006308)互相交流。工作、生活、心境,可以互相启迪。
聊技术,交朋友,修心境,qq404006308,微信fan404006308
26岁,真心找女朋友,非诚勿扰,微信fan404006308,qq404006308
人工智能群:939687837

作者相关推荐

原文地址:https://www.cnblogs.com/Renyi-Fan/p/14493349.html