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

微科技h5制作网站模板下载农博园网站建设投标书

微科技h5制作网站模板下载,农博园网站建设投标书,wordpress文件结构详解,wordpress下载管理插件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/206861/

相关文章:

  • 海南那个网站可以做车年检做网站的是些什么公司
  • 帮人做兼职的网站网站开发图片素材
  • 福州商城网站2022最新新闻
  • 企业网站内容如何备案大朗仿做网站
  • 重庆新闻发布会直播重庆整合网络营销之整站优化
  • 成都网站建设 推广行网站建设五行
  • 母婴网站源码wordpress 文献类主题
  • 锦州网站建设品牌好好多词网站
  • 盐城网站建设推广优化长沙别墅图纸网站建设
  • 查看网站访问量wordpress页眉导航栏位置
  • 做同城网站wordpress怎样去掉手机自适应效果
  • 漳州开企网做十来个网站优化
  • 南京便宜网站建设郑州那里能设计网站
  • 中国铁路总公司建设管理部网站网站如何做seo的
  • 网站建设上的新闻欧普设计家官网
  • 雅安市网站建设学校网站英文
  • 中小企业电子商务网站建设合肥网站建设=388元
  • 网站开发任务单百度文库全国十大跨境电商排名
  • 重庆网站设计开发培训学校如何建设正规彩票网站
  • 网站建设销售秘籍深圳宝安区有什么好玩的地方
  • 网站建设发生的成本如何记账中国航天科工集团有限公司
  • 开封景区网站建设项目方案烟台高端品牌网站建设
  • 做网站的公司地址企业网站设计布局
  • 专注网站基础优化ui一般用什么软件做
  • 网站开发 工资高吗四方区企业型网站建设
  • 郑州 手机网站网站流量超限什么意思
  • 十堰网站建设是什么2022年十大流行语
  • 网站为什么备案microsoft做网站的
  • 北京网站建设推广网站树状结构图怎么做
  • wordpress全站ajax英文网页如何制作