个人博客导航页(点击右侧链接即可打开个人博客):大牛带你入门技术栈
Job-Queue 任务-队列的应用场景,是将耗时的任务延时(异步)处理,比如发送邮件,从而大幅度缩短 Web 请求和响应的时间。
1,队列
1.1 连接和队列 connection 和 queue
在配置文件 config/queue.php
有一个 connections
配置项。该配置项定义了后台队列服务的特定 连接器,如 Amazon SQS, Beanstalk, 或 Redis。
每种队列连接器(connection)都可以有很多队列(queue),可以想象在银行办理不同业务的各个窗口队列。
<?php
return [
//默认的队列连接名称
'default' => env('QUEUE_CONNECTION', 'sync'),
//队列连接名称
'connections' => [
'sync' => [
'driver' => 'sync',
],
.
.
.
'redis' => [
'driver' => 'redis',
'connection' => 'default',
'queue' => env('REDIS_QUEUE', 'default'),
'retry_after' => 90,
'block_for' => null,
],
],
//失败队列连接器
'failed' => [
'database' => env('DB_CONNECTION', 'mysql'),
'table' => 'failed_jobs',
],
];
请注意 queue
配置文件中的connections里面的每个连接器配置示例都有一个 queue
属性。比如上文中的redis,它的queue的默认值就是 default。当新的队列任务被添加到指定的连接时,该配置项的值就是默认监听的队列。换句话说,如果你没有指派特别的队列名称,那么 queue
的值,也是该任务默认添加到的队列。