欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

laravel 队列的简单理解和使用

程序员文章站 2022-06-15 17:18:02
...

laravel 队列是怎样理解的呢,其实 laravel 队列有同步还有异步,在实际开发过程中可以根据实际情况进行开发!简单点理解就是,商品下单后,半个小时内没有付款,这时候就可以用到 laravel 的队列了

现在我们先来用一下数据库队列

使用数据库队列,依次以下两条命令,生成所需要的数据表

php artisan queue:table
php artisan migrate

运行一下以下命令,生成一个队列文件

php artisan make:job TestQueue

会自动生成 app/Jobs/TestQueue.php 文件

laravel 队列的简单理解和使用

接着修改一下 app/Jobs/TestQueue.php 文件

	use App\Models\TestModel;
	.
	.
	.
	/**
     * Create a new job instance.
     *
     * @return void
     */
	public function __construct(TestModel $testModel)
    {
        $this -> model = $testModel;
    }

    /**
     * Execute the job.
     *
     * @return void
     */
    public function handle()
    {
        // 修改用户手机号码
        $this -> model -> phone = 188888888888;
        $this -> model -> save();
    }

接着编写接口,调用队列

	/**
     * @param Request $request
     * @param TestModel $testModel
     */
    public function store(Request $request,TestModel $testModel)
    {
        $testModel -> username = '用户_' . time();
        $testModel -> save();
		// 调用队列 并且10秒钟后执行
        TestQueue::dispatch($testModel) -> delay(now() -> addSecond(10));
	}

修改 .env 文件中的 QUEUE_CONNECTION 改成 database

QUEUE_CONNECTION=database

重启一下队列 否则更改的信息不会生效

php artisan queue:restart

开启队列监听

php artisan queue:work

监听成功会打印相关的信息

laravel 队列的简单理解和使用

已上就是一个简单的数据库链接的例子!其实队列可以用在很多功能上,队列异步处理能有效的降低请求响应时间

参考链接