当前位置: 首页 > news >正文

建设部网站技术负责人业绩表360建站平台

建设部网站技术负责人业绩表,360建站平台,淘宝美工需要学什么软件,公司网站模板制作一 使用场景 在一些场景#xff0c;项目已发布了一段时间了#xff0c;只是需要完善或优化一些功能要用到队列#xff0c;但不想改动太大#xff08;或者不想在安装第三方MQ组件框架#xff09;的情况下可以用redis实现队列 。 二 redis实现队列 1 redis有序队列 使用red…一 使用场景 在一些场景项目已发布了一段时间了只是需要完善或优化一些功能要用到队列但不想改动太大或者不想在安装第三方MQ组件框架的情况下可以用redis实现队列 。 二 redis实现队列 1 redis有序队列 使用redis的list的数据类型轻松实现有序队列该队列每次存储时放在左边第1个从右边最后一个取出即先进去先出来该队列大多数场景都适用如果不知道使用什么队列好可以先尝试试用该队列。 /*** REDIS有序队列*/public void pushOrder(String json) {stringRedisTemplate.opsForList().leftPush(KEY, json);}/*** REDIS有序队列*/public String popOrder() {return stringRedisTemplate.opsForList().rightPop(KEY);} 假设分布式服务下的另外的springboot项目消费队列示例代码 Service public class RedisOrderProcess {private static final Logger logger LogManager.getLogger(RedisOrderProcess.class);AutowiredRedisServiceImpl redisService;PostConstructpublic void init() {int cpuCount Runtime.getRuntime().availableProcessors();System.out.println(start RedisOrderProcess cpuscpuCount);processOrderImport(cpuCount);}private void processOrderImport(int cpus) {ExecutorService executorService new ThreadPoolExecutor(cpus, 1000,60L, TimeUnit.SECONDS,new LinkedBlockingQueue Runnable());executorService.execute(() - {while (true) {String jsonnull;try{jsonredisService.popOrder();if(json!null){//订单业务处理代码}else{Thread.sleep(500);}}catch (Exception e){logger.error(err data \njson,e);e.printStackTrace();}}});}} 2 redis无序队列 使用redis的hash的数据类型轻松实现无序队列而且队列保存中的内容是唯一的往往用到的一些场景很特殊而且在某些场景运用比正规的队列组件还爽。 在使用springboot框架下轻松实现生产端 /*** 推送第三方设备状态** param id* param status*/public void pushStatus(String id, Integer status) {if(statusnull){return;}String value id : status;stringRedisTemplate.opsForSet().add(PUSH_STATUS, value);} 在使用springboot框架下轻松实现消费端 Service public class RedisStatusProcess {private static final Logger logger LogManager.getLogger(RedisStatusProcess.class);AutowiredStringRedisTemplate stringRedisTemplate;PostConstructpublic void init() {int cpuCount Runtime.getRuntime().availableProcessors();System.out.println(start RedisStatusProcess cpuscpuCount);processStatusImport(cpuCount);}private void procesStatusImport(int cpus) {ExecutorService executorService new ThreadPoolExecutor(cpus, 1000,60L, TimeUnit.SECONDS,new LinkedBlockingQueue Runnable());executorService.execute(() - {while (true) {String jsonnull;try{jsonstringRedisTemplate.opsForSet().pop(PUSH_STATUS)if(json!null){//状态业务处理代码}else{Thread.sleep(200);}}catch (Exception e){logger.error(err data \njson,e);e.printStackTrace();}}});}} 以上代码在我们的线上场景我们当前2000个设备每个设备每秒上传1个状态如果使用有序队列就要 1分钟时间就要处理2000*60个状态如果队列有延迟还意味着从队列获取的状态不是最新的而且没有消费时可能会撑破内存。而使用无序队列就不存在问题因为在队列中每个设备只允许一个状态如果未消费则直接用最新的状态覆盖拿出的基本都是最新的也不用一定要消费到每个队列状态。  安装与使用redis教程 - http://t.csdnimg.cn/1Ltzm
http://www.yutouwan.com/news/68864/

相关文章:

  • 模板网站下载商城网站建设价格费用
  • 上海网站建设设计制作网站开发合同需要交印花税吗
  • 购物类网站都有哪些模块张槎手机网站建设
  • ps做网站页面美工淘宝内部卷怎么做网站
  • vs2017做的网站百度关键词优化排名技巧
  • 努比亚网站开发文档seo怎么才能优化好
  • 哪些购物网站用php做的做网站建设注册商标是多少类
  • 网站关键词优化外包服务wordpress映射到外网访问
  • 自做淘宝客网站网站如何做长尾词排名
  • 专门做ppt的网站叫什么如何做一个单页的网站
  • 中小企业网站用什么技术无锡市工程造价信息网
  • 游戏推广网站制作网站跳出率太高
  • 网站服务商排名wordpress门户网站模板下载
  • 网站的设计费用wordpress删除底部
  • 吉林省建设工程造价网站雅虎网站提交入口
  • 建设银行宁德分行网站从化公司网站建设
  • 北京网站推广技巧免费网站推广app
  • 网站建设哪家有实力如何用python做一个网站
  • 中英文对照网站怎么做在线教育网站建设方案
  • 电子商城开发网站开发网站建设实现用户登录
  • 卖二手手表的网站长春seo招聘
  • 企业网站 多网站推广京东网站是哪个公司做的
  • 做网站要学会什么软件需要哪些技术
  • 阜阳市建设工程网站国内知名设计网站
  • 什么好的主题做网站我想做个百度网站怎么做的
  • 思途做的旅游网站WordPress已安装主题
  • 福州做网站企业网页设计图片代码怎么写
  • 网站前台可以打开怎么做纯文本网站
  • 集团公司门户网站建设wordpress多边形按钮
  • 网页设计与网站开发第三版课后答案wordpress考试主题