laravel队列应用

原文链接:https://blog.csdn.net/qq_39337886/article/details/82024081

//修改.env配置文件
QUEUE_DRIVER=database


迁移队列需要数据表

php artisan queue:table
è¿éåå¾çæè¿°


php artisan migrate

 laravel队列应用_第1张图片
 laravel队列应用_第2张图片

命令行创建任务类

php artisan make:job SendEmail

 laravel队列应用_第3张图片
 

laravel队列应用_第4张图片

编写任务类

//app/jobs

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;

class SendEmail implements ShouldQueue
{
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
    protected $email;
    /**
     * Create a new job instance.
     *
     * @return void
     */
    public function __construct($email)
    {
        //
        $this->email = $email;
    }

    /**
     * Execute the job.
     *
     * @return void
     */
    public function handle()
    {
        //
        //Mail::raw('你好,我是PHP程序!', function ($message) {
        //    $to = $this->email;
        //    $message ->to($to)->subject('纯文本信息邮件测试(队列测试)');
        //});
                Log::info('已发送--'.$this->email);
    }
}

编写控制层方法

    public function queue(){
        //use App\Jobs\SendEmail; 命名空间引入
        dispatch(new SendEmail('[email protected]'));
    }

执行然后查看数据库 

è¿éåå¾çæè¿°

运行队列监听器

php artisan queue:listen

监听然后推送队列 
 laravel队列应用_第5张图片
执行的是在日志中写信息 
 laravel队列应用_第6张图片
写成功 
处理失败任务

//迁移失败表
php artisan queue:failed-table
php artisan migrate

 laravel队列应用_第7张图片

laravel队列应用_第8张图片

laravel队列应用_第9张图片

队列执行错误 
–tries 如果没有指定 –tries 的值,任务将会被无限次尝试。

php artisan queue:listen --tries=1
laravel队列应用_第10张图片
 
查看错误的队列

php artisan queue:failed
laravel队列应用_第11张图片
 
重新执行队列

php artisan queue:retry 1
è¿éåå¾çæè¿°
然后去监听队列看 
 laravel队列应用_第12张图片
重新执行后队列执行失败 (注意Id变化 之前为1现在1没了新添加了新的错误队列) 
 laravel队列应用_第13张图片
重新执行所有的

php artisan queue:retry all

 è¿éåå¾çæè¿°
执行失败(故意让执行失败的) 
 laravel队列应用_第14张图片
删除错误队列

php artisan queue:forget 5

 laravel队列应用_第15张图片
删除所有

php artisan queue:flush
laravel队列应用_第16张图片

你可能感兴趣的:(后端,笔记,laravel,队列)