php 异步处理多个队列同时进行
<?php $batchId =time(); $queueNames = ['ProfitExportQueueOne', 'ProfitExportQueueTwo', 'ProfitExportQueueThree', 'ProfitExportQueueFour', 'ProfitExportQueueFive', 'ProfitExportQueueSix']; /*其中可以开启六个进程*/ $getName = $queueNames[array_rand($queueNames)]; /*$batchId是批量号,也可以是队列参数数组 //其中 redis 是连接的载体,用redis做异步的 onQueue是队列名称 ProfitExportQueue::dispatch($batchId)->onConnection('redis')->onQueue($getName);
然后再本地环境调试,开启队列的时候:
php artisan queue:work --queue=ProfitExportQueueOne 后面的参数为队列名称 如果要开启六个就开六个进程
#redis 队列配置
BROADCAST_DRIVER=log
CACHE_DRIVER=redis
QUEUE_CONNECTION=redis
SESSION_DRIVER=file
SESSION_LIFETIME=120
CACHE_PREFIX=order