日常队列使用小结,推荐使用supervisor驱动
说明
- 队列配置文件存放在 config/queue.php。
- 每一种队列驱动的配置都可以在该文件中找到, 包括数据库, Beanstalkd, Amazon SQS, Redis, 以及同步(本地使用)驱动。
- 其中还包含了一个null队列驱动用于那些放弃队列的任务。
使用databse驱动
- 修改
.env
中的配置项QUEUE_DRIVER
为database
- 首先要创建数据表来存储任务,
php artisan queue:table
php artisan migrate
- 创建 job 文件,
php artisan make:job SendReminderEmail
- 在 Controller 层
$this->dispatch(new SendRemindEmail())
生产队列,于是database jobs
中记录了最新添加的队列任务 - 单一消费队列
php artisan queue:work
- 依次消费所有队列
php artisan queue:listen
使用beanstalkd驱动
- 安装 beanstalkd:
sudo apt-get install beanstalkd
service beanstalkd start
/usr/bin/beanstalkd -l 127.0.0.1 -p 11300
- 安装其依赖扩展包
composer require pda/pheanstalk
- 依然修改
.env
中的配置项QUEUE_DRIVER
为beanstalkd
- 生产队列后的数据存储在内存中,消费者直接从内存中获取数据消费掉,其命令同上介绍。
- 安装beanstalk-console,如果使用
composer
可执行composer create-project ptrofimov/beanstalk_console -s dev
,如果使用laradock
可直接docker-composer up -d beanstalk-console
使用supervisor驱动
- 安装 supervisor:
sudo apt-get install supervisor
, 也可以去官网下载最新稳定版本 - 编辑新的配置文件
cd /etc/supervisor/conf.d/demo.conf
,配置项模板如下 - 重新读取新的配置文件执行
sudo supervisorctl reread
sudo supervisorctl update
- 启动对应配置项worker执行
sudo supervisorctl start demo:*
|
|