redis消息队列实例
生产者a.php
//先存入到队列,然后用后台任务保存数据 if (true) { $data = [ 'table' => 't_startup', 'data' => $table, ]; require_once 'func/Redis.php'; $redis = Redis::getInstance('tcp://127.0.0.1:6379'); $client = $redis->client(); $result = $client->lpush('list_sdk_insert', json_encode($data)); if (!$result) { //插入队列失败业务处理 } }
消费者server.php
<?php /** * 后台任务:从队列中取数据,插入mysql */ set_time_limit(0); function load($param) { require_once 'func/Redis.php'; $redis = Redis::getInstance('tcp://127.0.0.1:6379'); $client = $redis->client(); $key = 'list_sdk_insert'; $i = 0; while (true) { $i++; if ($i % 30 == 0) { sleep(0.5); } $str = $client->rpop($key); if ($str) { $obj = json_decode($str); $table = $obj->table; $data = $obj->data; $bus = new \ZXUN\Data\DataTable($table); $result = $bus->Add($data); if (!$result) { //插入失败的业务,表未定 } } else { sleep(0.5); } } exit(); }
赞:(0)
踩:(0)
- 相关文章
- redis数据持久化
- memcache与redis比较
- redis数据类型及常用命令
- redis慢查询
- redis pipeline
- redis 发布与订阅
- redis位图bitmap
- redis HyperLogLog
- redis geo
- redis布隆过滤器
- 热门文章
- win7中将文件拷贝到虚拟机linux下
- phpexcel设置行高及列宽,背景颜色,
- rabbitmq无法启动
- intellij idea不显示git push按钮
- php7中使用mongodb的aggregate进行
- laravel页面静态化的方法
- centos7.4 64位下swoole安装及配置
- navicate连接mycat报1184错误
- curl设置超时不起作用(CURLOPT_TIM
- devops-jenkins容器为pending状态
- 好评文章
- phpexcel设置行高及列宽,背景颜色,
- php7中使用mongodb的aggregate进行
- intellij idea打开文件所在文件夹
- windows下使用MongoDB Compass Com
- win7中将文件拷贝到虚拟机linux下
- laravel 中悲观锁 & 乐观锁的使用
- 单点登录sso原理及php实现方式及de
- navicate连接mycat报1184错误
- rabbitmq无法启动
- laravel整合dingo/api方法步骤:jwt
- 我的项目
- 【github】www.github.com/hurong241
- 【码云】gitee.com/hu_rong/projects
- 【docker hub】hub.docker.com/repositories/hurong241
- 【packagist】packagist.org/users/hurong241/packages
- 站点信息
- 建站时间:2011年
- 文章数:623篇
- 浏览数:1303109