前提redis连接laravel配置完毕
1、配置使用redis队列,修改.env文件
QUEUE_DRIVER=redis
2、生成队列文件,此时在app目录下会生成Jobs/Redis.php
php artisan make:job Redis
3.编写队列代码
<?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;
class Redis implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
protected $get;
/**
* Create a new job instance.
*
* @return void
*/
public function __construct($get)
{
$this->get = $get;
}
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
//将接收到数据存到test.txt文件中
file_put_contents('test.txt',$this->get);
echo 'success';
}
}
4.启动队列监听
php artisan queue:work
5.控制器调用队列(RedisController控制器)
<?php
namespace App\Http\Controllers;
use App\Jobs\Redis;
class RedisController extends Controller
{
public function index(){
//测试
$data = 'my redis queue test';
Redis::dispatch($data)->delay(10);
return 'heihei';
}
}
6.访问队列
结果(10s后控制台):
至此,redis队列完成