美文网首页
2019-04-08

2019-04-08

作者: wanggs | 来源:发表于2019-04-09 14:08 被阅读0次
      public static void main(String[] args) {
            RedisPlugin redisPlugin = new RedisPlugin("inpark_c", "116.62.173.151", 6379);
            redisPlugin.start();
    
            Redis.use().set("stock","20");
    
            ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
            scheduler.scheduleWithFixedDelay(new Runnable() {
                @Override
                public void run() {
                    ZkDistributedLock zkDistributedLock = new ZkDistributedLock();
                    zkDistributedLock.setLockName("test");
                    if (zkDistributedLock.tryLock(ZookeeperConstant.WAIT_TIME , TimeUnit.MILLISECONDS)) {
                        System.out.println(new Date()+"===="+Thread.currentThread().getId()+"lock");
                        try {
    
                            int stock = Integer.parseInt(Redis.use().get("stock"));
                            if (stock > 0){
                                // 减库存
                                stock = stock -1;
                                Redis.use().set("stock",stock+"");
                                System.out.println("[扣库存成功] 剩余库存:{}"+stock);
    
                            }else {
                                System.out.println("[口库存或失败] 库存不足!!");
                            }
    
    
                            zkDistributedLock.unlock();
                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                    }
                }
            },0,100,TimeUnit.MILLISECONDS);
    
    
        }
    

    消息队列

    new ActiveMQPlugin("tcp://127.0.0.1:61616").start();
            JmsSubjectConstantEnum order=JmsSubjectConstantEnum.ORDER;
            ActiveMQ.addSender(new JmsSender(order.getSender(),ActiveMQ.getConnection(), Destination.Topic,"test"));
            ActiveMQ.addReceiver(new JmsReceiver(order.getReceiver(),ActiveMQ.getConnection(), Destination.Topic, "test"));
            SendUtilImpl sendUtil=new SendUtilImpl();
            JSONObject msg = new JSONObject();
            msg.put("test", "11");
            sendUtil.sendMessage(order.getSender(),msg,10000L);
    

    相关文章

      网友评论

          本文标题:2019-04-08

          本文链接:https://www.haomeiwen.com/subject/ltoyiqtx.html