1、配置数据库和Redis //编辑config/database.php 'mysql' => [ 'driver' => 'mysql', 'host' => 'localhost', 'port' => 3306, 'database' => 'demo_laravel', 'username' => 'demo', 'password' => '123456', 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', 'strict' => false, 'engine' => null, ], 'queue' => [ 'host' => '192.168.56.101', 'password' => null, 'port' => 6379, 'database' => 0, ], //config/queue.php 'default' => 'redis', 'connections' => [ 'redis' => [ 'driver' => 'redis', 'connection' => 'queue', 'queue' => 'default', 'expire' => 3600,//队列有效期 ], ], 'failed' => [ 'database' => 'mysql', 'table' => 'failed_jobs', ], 2、添加failed-table 执行:php artisan queue:failed-table 执行:php artisan migrate:install 执行:php artisan migrate 3、生产者 将数据丢入队列 执行:php artisan make:console Demo/Test <?php namespace App\Console\Commands\Demo; use App\Jobs\Demo\HandleTest; use Illuminate\Console\Command; use Illuminate\Foundation\Bus\DispatchesJobs; class Test extends Command { use DispatchesJobs; /** * 将数据丢入队列 */ protected $signature = 'demo:test {--num=}'; protected $description = '将数据丢入队列'; public function __construct() { parent::__construct(); } public function handle() { $num = $this->option('num'); for($i = 0; $i <= $num; $i++) { $queueName = 'demo_1';//这里可以按照业务取模之后启动多个队列 $job = (new HandleTest($i))->onConnection('redis')->onQueue($queueName); $this->dispatch($job); } } } 4、消费者 将消费队列内容 php artisan make:job Demo/HandleTest app/Jobs/Demo/HandleTest.php <?php namespace App\Jobs\Demo; use App\Jobs\Job; use Illuminate\Queue\SerializesModels; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Contracts\Queue\ShouldQueue; class HandleTest extends Job implements ShouldQueue { use InteractsWithQueue, SerializesModels; //初始化数据 public function __construct($data) { $this->data = $data; } public function handle() { echo $this->data . PHP_EOL; } } 5、启动生产者 php artisan demo:test --num=2 //这样可以看到redis的queues:demo_1 在redis执行:LRANGE queues:demo_1 0 -1 可以看到3个元素 6、启动消费队列(可以使用supervisor管理消费队列) php artisan queue:work redis --queue=demo_1 --daemon --tries=10 7、队列失败 如果队列执行失败则会将任务存入failed_jobs表 重试JOB可以执行 php artisan queue:retry 1
搜索
标签
-
近期文章
- laravel使用aws笔记
- npm run dev/serve/build
- Vue环境变量
- Vue.config.js文件
- export和import
- Angular命令
- Angular系列教程-TypeScript
- Angular系列教程-第六节
- Angular系列教程-第五节
- Angular系列教程-第四节
- Angular系列教程-第三节
- Angular系列教程-第二节
- Angular系列教程-第一节
- Angular使用css
- Angular部署Nginx子目录
- Angular使用loadChildren
- Vue使用代理请求后端接口
- Vue使用axios
- Vscode配置vue、angular项目的settings.json
- Vue使用ElementUI
- Vue引入静态资源
- Vue配置多模块
- Session回收机制
- Vue自定义组件-动态组件
- Vue自定义组件-事件使用
- Vue自定义组件-属性使用
- Nginx配置Thinkphp
- Laya发布模式区分
- Gogs仓库Webhook使用
- MySQL数据表生成Wiki格式数据字典
- 对比文件内容
- 【推广】腾讯云发钱了!腾讯云发钱了!腾讯云发钱了!
- 小程序checkbox调整大小
- 坑爹的BOM
- 小程序wx.uploadFile失败的问题排查记录
- PHP取余的那些事
- SSI说明
- Composer
- PHP反射机制
- php使用elasticsearch
- PHPUnit使用笔记
- TDD、BDD和DDD
- monolog使用案例
- monolog使用解析
- MySQL最大连接数和当前并发数
- Go函数知识
- Go的基础知识1
- composer使用私有仓库
- composer开发的一些坑
- 开发属于自己的composer
- phpspec入门
- phpspec安装
- Lumen5.X使用频率限制组件笔记
- php中的generator和yield
- composer使用笔记
- 负载均衡知识汇总
- GO获取表单元素
- Go操作MySQL示例【转】
- Go命令介绍
- ES中的索引管理
- ES中的分布式搜索
- ES中的排序
- ES中的查询
- ES的映射和分析
- Elasticsearch的索引、分片、文档、副本
- Elasticsearch学习搜索的笔记
- Elasticsearch的CRUD操作
- 领域专用语言(DSL)和通用编程语言(GPL)
- 倒排索引
- 存储过程
- logstash插件推荐
- logstash配置output到exec
- logstash安装插件
- logstash配置output到redis
- logstash配置output到Elasticsearch
- logstash配置codec插件-多行模式
- logstash配置codec插件-JSON模式
- logstash之input配置collectd类型详解
- Collectd安装客户端
- Collectd介绍
- Ubuntu内核优化
- logstash之input配置redis类型详解
- logstash之input配置syslog类型详解
- logstash之input配置generator类型详解
- logstash之input配置stdin类型详解
- logstash之input配置file类型详解
- Logstash启动测试
- Linux调整Swap大小
- vagrant配置多个虚拟机
- Logstash配置详解
- Kibana配置和启动
- Kibana配置详解
- Elasticsearch配置
- Lucenu和Sphinx介绍
- Ubuntu安装ELK
- Ubuntu代理下安装软件
- supervisor管理界面
- supervisor安装和使用
- Laravel队列使用案例
- Laravle Queue命令
文章归档
- 2020年5月 (1)
- 2020年4月 (15)
- 2019年12月 (10)
- 2019年7月 (1)
- 2019年6月 (1)
- 2018年10月 (2)
- 2018年5月 (1)
- 2018年4月 (1)
- 2018年2月 (2)
- 2018年1月 (1)
- 2017年12月 (1)
- 2017年11月 (3)
- 2017年8月 (8)
- 2017年7月 (8)
- 2017年6月 (43)
- 2017年5月 (2)
- 2017年4月 (3)
- 2017年3月 (19)
- 2017年1月 (8)
- 2016年11月 (5)
- 2016年10月 (1)
- 2016年9月 (8)
- 2016年8月 (6)
- 2016年7月 (10)
- 2016年6月 (13)
- 2016年5月 (12)
- 2016年4月 (11)
- 2016年3月 (7)
- 2016年2月 (1)
- 2016年1月 (3)
- 2015年11月 (1)
- 2015年9月 (1)
- 2015年8月 (2)
- 2015年7月 (3)
- 2015年6月 (7)
- 2015年5月 (5)
- 2015年4月 (4)
- 2015年3月 (2)
- 2015年2月 (3)
- 2015年1月 (2)
- 2014年12月 (3)
- 2014年11月 (12)
- 2014年10月 (1)
- 2014年9月 (15)
- 2014年8月 (4)
- 2014年7月 (12)
- 2014年6月 (15)
- 2014年5月 (2)
- 2014年4月 (5)
- 2014年3月 (4)
- 2014年2月 (1)
- 2014年1月 (4)
- 2013年12月 (7)
- 2013年11月 (11)
- 2013年10月 (10)
- 2013年9月 (21)
- 2013年8月 (6)
- 2013年7月 (11)
- 2013年6月 (2)
- 2013年5月 (6)
- 2013年4月 (10)
- 2013年3月 (19)
- 2013年2月 (10)
- 2013年1月 (15)
- 2012年12月 (24)
- 2012年11月 (9)
- 2012年10月 (11)
- 2012年9月 (6)
- 2012年8月 (24)
- 2012年7月 (17)
- 2012年6月 (7)
- 2012年5月 (26)
- 2012年4月 (7)
- 2012年3月 (17)
- 2012年2月 (4)
- 2012年1月 (3)
- 2011年11月 (17)
- 2011年10月 (2)
- 2011年9月 (13)
- 2011年8月 (7)
- 2011年7月 (9)
- 2011年6月 (1)
- 2011年5月 (7)
- 2011年4月 (8)
分类目录
友情链接