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

扬州做机床公司网站优质的做pc端网站

扬州做机床公司网站,优质的做pc端网站,公司网页设计费用,可以免费用的ppt模板java调用lua脚本完成对商品库存的管理 主页链接 微风轻吟挽歌的主页 如若有帮助请帮忙点赞 //lua脚本 获取到内存不够的商品StringBuilder sb new StringBuilder();//定义一个数组存储可能缺少库存的值sb.append(" local table {} ");//获取值sb.append(" …

java调用lua脚本完成对商品库存的管理

主页链接 微风轻吟挽歌的主页

如若有帮助请帮忙点赞
请添加图片描述

//lua脚本 获取到内存不够的商品StringBuilder sb = new StringBuilder();//定义一个数组存储可能缺少库存的值sb.append(" local  table = {} ");//获取值sb.append("  local values = redis.call('mget',unpack(KEYS)) ");//如果不够就放到table之中sb.append("  for i = 1, #KEYS do ");sb.append("     if tonumber(ARGV[i]) > tonumber(values[i]) then ");sb.append("         table[#table + 1] = KEYS[i] .. '=' .. values[i] ");sb.append("     end ");sb.append("  end");//判断 库存是否sb.append("  if #table > 0 then ");sb.append("  return table ");sb.append("  end ");sb.append("  for i = 1, #KEYS do  ");sb.append("  redis.call('decrby',KEYS[i],ARGV[i]) ");sb.append("  end ");sb.append("  return {} ");

lua 脚本的内容作业个简单的判断,相信逻辑大家都明白,只是lua脚本语言本身不太熟练,这里有一个简单模板,亲测可用 不一定时最优的模板

测试

这里的redisTemplate在官方jarbao中采用的jdk序列化方式导致中文乱码,我这里注入的是自己重写的(网上抄的),因为非本文重要内容,不再详述

   @AutowiredRedisTemplate<Object, Object> redisTemplate;@Resource(name = "redisTemplate")ValueOperations valueOperations;@ResourceStringRedisTemplate stringRedisTemplate;@Test//通过lua脚本多线程操作库存void get() throws IOException {String key1  = "apple";String key2  = "banana";String key3  = "栗子";//三个商品并设置其库存量valueOperations.set(key1,15L);valueOperations.set(key2,8L);valueOperations.set(key3,6L);//lua脚本 获取到内存不够的商品StringBuilder sb = new StringBuilder();//定义一个数组存储可能缺少库存的值sb.append(" local  table = {} ");//获取值sb.append("  local values = redis.call('mget',unpack(KEYS)) ");//如果不够就放到table之中sb.append("  for i = 1, #KEYS do ");sb.append("     if tonumber(ARGV[i]) > tonumber(values[i]) then ");sb.append("         table[#table + 1] = KEYS[i] .. '=' .. values[i] ");sb.append("     end ");sb.append("  end");//判断 库存是否sb.append("  if #table > 0 then ");sb.append("  return table ");sb.append("  end ");sb.append("  for i = 1, #KEYS do  ");sb.append("  redis.call('decrby',KEYS[i],ARGV[i]) ");sb.append("  end ");sb.append("  return {} ");RedisScript<List> script = RedisScript.of(sb.toString(),List.class);ExecutorService executorService = Executors.newCachedThreadPool();for (int i = 0; i < 10; i++) {int i1 = RandomUtil.randomInt(1, 5);executorService.execute(()->{List execute = stringRedisTemplate.execute(script,CollUtil.newArrayList(key1, key2, key3), String.valueOf(i1), String.valueOf(i1), String.valueOf(i1));if(execute.isEmpty()){System.out.println("库存足够,存储成功");return;}for (Object obj : execute){String[] split = obj.toString().split("=");System.out.println(StrUtil.format("商品{} 需求量:{} 库存不足,仅剩{}",split[0],i1,split[1]));}});}//测试中执行所以需要阻塞使用防止因为多线程执行的时候因为其他线程走完导致的测试结束System.in.read();}

测试结果

在这里插入图片描述
ok,这次的lua脚本就记录完毕。
那么开始正事请添加图片描述

http://www.yayakq.cn/news/260616/

相关文章:

  • 高碑店住房和城乡建设局网站哪些网站是做快消品的
  • 什么网站可以做装修效果图女孩子奖励自己的资料
  • 做企业云网站的企业邮箱wordpress 社交
  • 网站建设程序开发无锡网站建设公司怎么样
  • 网站建设侵权行为有哪些建设局特种作业网站
  • 重生做网站小说宁波网站优化软件
  • 网站建设推广关键词临沂建设局网站
  • 黑色背景的网站开发工具科技有限公司的名称应该怎么取名
  • 泰安如何选择网站建设硬件开发用什么语言
  • 织梦手机网站怎么修改dede仿wordpress
  • 仿励志一生lz13网站整站源码长春南京小学网站建设
  • 南宁建设银行官网招聘网站营销型网站功能
  • 东莞黄江建设银行网站保险代理平台
  • 网站建设青岛公司做网站外贸怎么找客户
  • 毕设做的网站可以用模板改吗单页面网站如何优化
  • 成都网站制作龙兵科技东莞人才市场档案服务中心
  • 网站 成品下载做电商需要什么条件
  • 网站建设需求分析表怎么写网站建设初期目标
  • 那个网站的公众后推广做的好号网站开发
  • WordPress建站收费上海做网站的公司哪个好
  • 企业建站多少钱一个月wordpress增加英文
  • 网站建设与管理心得体会几个免费建立网站的平台
  • 网站建设类有哪些职位外贸网站 站长工具
  • dede 分类信息网站 模板可以做网站背景音乐的英文歌曲
  • 站内营销推广方式有哪些福州网站建设
  • 电子商务网站系统建设实训心得专业的设计网站有哪些内容
  • 自己做网站语言构建服务器做网站遇到的问题
  • 线上教育课程的网络营销方式成都关键词优化
  • 哈尔滨网站公司哪家好网页传奇游戏怎么注销
  • 紫金网站建设制作app软件的公司