此处用laravel5.8做示例
.env配置
# .env 中 配置连接方式。对一般中小型应用推荐使用 Redis 作为队列驱动
# 并且在.env 中配置相应的数据库设置 以及 redis
QUEUE_CONNECTION=redis
#如果是数据库驱动,请执行以下动作,生成对应表
php artisan queue:table
php artisan migrate
#若数据库长度报错,请试试以下操作
目录:app/Providers/AppServiceProvider.php
boot 方法
use Illuminate\Support\Facades\Schema;
Schema::defaultStringLength(191);
在.env文件中配置QUEUE_CONNECTION=database
Laravel可配置多种队列驱动,包括 "sync", "database", "beanstalkd", "sqs", "redis", "null"(具体参见app/config/queue.php)
其中sync为同步,database为使用数据库,后面三种为第三方队列服务,最后一种为不使用队列。
通过在 .env 中的 QUEUE_CONNECTION 选项,来决定选择何种驱动。
如 QUEUE_CONNECTION=database 即为选择数据库驱动队列。
创建任务(例)
php artisan make:job ProcessPodcast
#运行队列
php artisan queue:work
#处理所有队列任务然后退出
php artisan queue:work --stop-when-empty
#重启队列,代码修改后,需重启才能生效
php artisan queue:restart
网友评论