使用laravel的队列

527 阅读1分钟
  1. service_clue/config/queue.php文件新增配置
'abc' => [
    'driver' => 'redis',
    'connection' => 'default',
    'queue' => 'abc',
    'expire' => 60,
],

队列名 abc

2.投递队列

$ret = $this->dispatch((new testTask("测试"))->onQueue('abc'));
dd($ret);

onQueue 指定的配置

  1. 消费数据
<?php

namespace App\Jobs;

use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Log;

class testTask extends Job implements ShouldQueue
{
    use InteractsWithQueue, SerializesModels;

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

    /**
     * Execute the job.
     *
     * @return void
     */
    public function handle()
    {
        var_dump(123);
        Log::info('exec===========>exec'. $this->param );
    }
    
    public function failed()
    {
        var_dump("失败");
        Log::info('失败了===========>失败了'. $this->param );
    }
}

handle消费数据,直接打印日志

  1. 启动队列监听(多消费启动多个即可)
php artisan queue:listen abc