laravel 队列queue 学习

发表于

使用场景:做用户中心需要和java对接订单数据,收到订单数据之后要做很多业务逻辑处理,包括请求高德接口获取省市区县的数据,期间会消耗很多时间去处理,所以为了避免这种情况,我想到了之前利用tp5试验过的消息队列的方式,于是有了这篇文章。

1.laravel .env文件配置

QUEUE_DRIVER=redis
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

2.生成

php artisan make:job SendReminderEmail

3.处理

public function handle()
{
    $redis = app('redis.connection');
    $redis->select(4);
    $i = 1; while ($value = $redis->lpop('fooList')){
        $data['uid'] = 1;
        $data['value'] = $value;
        $data['time'] = time();
        DB::connection('mysql_api')->table('test_redis')->insert($data); 
        if($i > 20){  echo 'end '.date('Y-m-d H:i:s').PHP_EOL; break; }
        $i++;
    }
}
4.模拟数据
$redis = app('redis.connection');
$redis->select(4); for ($i=0;$i<60;$i++){
    $redis->lpush('fooList', 'bar'.$i);
}

5.开启服务

php artisan queue:listen
6.OK

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注