java 实现秒杀活动 java实现秒杀功能_jar

  • 写入内存
  • 实现多线程异步操作
  • 实现分布式处理

1下面采用多线程的方式展示一个1000人秒杀100部手机的实例 代码如下

1.1秒杀实现:创建多线程,并利用Redis的事务功能,实现秒杀功能

package com.ruoyi.project.redis.secondkill;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.Transaction;

import java.util.List;

/**
 * 采用多线程的方式展示一个1000人秒杀100部手机的实例,实现秒杀功能
 * <p>
 * 创建多线程,并利用Redis事务功能,实现秒杀功能
 */
public class SecondKill implements Runnable {

    String iPhone = "iPhone";
    //创建jedis实例
    Jedis jedis = new Jedis("127.0.0.1", 6379);

    String userinfo;

    public SecondKill() {

    }

    public SecondKill(String userinfo) {
        this.userinfo = userinfo;
    }

    @Override
    public void run() {
        try {
            //使用watch命令监控iPhone键
            jedis.watch(iPhone);

            String val = jedis.get(iPhone);
            Integer valint = Integer.valueOf(val);
            if (valint <= 100 && valint >= 1) {
                //使用multi命令开启事务
                Transaction tx = jedis.multi();
                //事物命令入队
                tx.incrBy("iPhone", -1);
                //使用exec命令执行事务
                //提交事务,如果此时watchkeys被改动了,则返回null
                List<Object> list = tx.exec();

                if (list == null || list.size() == 0) {
                    String failuserinfo = "fail" + userinfo;
                    String failinfo = "用户:" + failuserinfo + "商品争抢失败,抢购失败";
                    System.out.println(failinfo);
                    /*抢购失败业务逻辑*/
                    jedis.setnx(failuserinfo, failinfo);
                } else {
                    for (Object succ : list) {
                        String succuserinfo = "succ" + succ.toString() + userinfo;
                        String succinfo = "用户:" + succuserinfo + "抢购成功,当前抢购人数:" + (1 - (valint - 100));
                        System.out.println(succinfo);
                        /*抢购成功业务逻辑*/
                        jedis.setnx(succuserinfo, succinfo);
                    }
                }

            } else {
                String failuserinfo = "kcfail" + userinfo;
                String failinfo1 = "用户:" + failuserinfo + "商品抢购完毕,抢购失败";
                System.out.println(failinfo1);
                jedis.setnx(failuserinfo, failinfo1);
                //Thread.sleep(500);
                return;
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            jedis.close();
        }


    }
}

1.2 主程序。秒杀功能的入口程序,用于创建线程池,同时生成用户ID,调用秒杀功能代码,完成秒杀任务

package com.ruoyi.project.redis.secondkill;

import redis.clients.jedis.Jedis;

import java.util.Random;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

/**
 * Redis秒杀功能实现,1000人抢购100部手机
 */
public class SecondKillTest {

    public static void main(String[] args) {
        final String iPhone = "iPhone";

        //20个线程池并发数
        ExecutorService executor = Executors.newFixedThreadPool(20);

        final Jedis jedis = new Jedis("127.0.0.1", 6379);
        //先删除
        jedis.del(iPhone);
        //设置起始的抢购数
        jedis.set(iPhone, "100");

        jedis.close();
        //设置100人的抢购
        for (int i = 0; i < 100; i++) {
            executor.execute(new SecondKill("user"+getRandomString(6)));
        }
        executor.shutdown();
    }

    /**
     * 生成用户ID
     *
     * @param length 随机字符串长度
     * @return
     */
    public static String getRandomString(int length) {
        String base = "abcdefghijklmnopqrstuvwxyz0123456789";
        Random random = new Random();
        StringBuffer sb = new StringBuffer();
        for (int i = 0; i < length; i++) {
            int number = random.nextInt(base.length());
            sb.append(base.charAt(number));
        }
        return sb.toString();
    }
}

1.3运行结果

D:\software\java8.0\jdk\bin\java.exe "-javaagent:D:\software\IntelliJ IDEA 2018.2.5\lib\idea_rt.jar=1645:D:\software\IntelliJ IDEA 2018.2.5\bin" -Dfile.encoding=UTF-8 -classpath D:\software\java8.0\jdk\jre\lib\charsets.jar;D:\software\java8.0\jdk\jre\lib\deploy.jar;D:\software\java8.0\jdk\jre\lib\ext\access-bridge-64.jar;D:\software\java8.0\jdk\jre\lib\ext\cldrdata.jar;D:\software\java8.0\jdk\jre\lib\ext\dnsns.jar;D:\software\java8.0\jdk\jre\lib\ext\jaccess.jar;D:\software\java8.0\jdk\jre\lib\ext\jfxrt.jar;D:\software\java8.0\jdk\jre\lib\ext\localedata.jar;D:\software\java8.0\jdk\jre\lib\ext\nashorn.jar;D:\software\java8.0\jdk\jre\lib\ext\sunec.jar;D:\software\java8.0\jdk\jre\lib\ext\sunjce_provider.jar;D:\software\java8.0\jdk\jre\lib\ext\sunmscapi.jar;D:\software\java8.0\jdk\jre\lib\ext\sunpkcs11.jar;D:\software\java8.0\jdk\jre\lib\ext\zipfs.jar;D:\software\java8.0\jdk\jre\lib\javaws.jar;D:\software\java8.0\jdk\jre\lib\jce.jar;D:\software\java8.0\jdk\jre\lib\jfr.jar;D:\software\java8.0\jdk\jre\lib\jfxswt.jar;D:\software\java8.0\jdk\jre\lib\jsse.jar;D:\software\java8.0\jdk\jre\lib\management-agent.jar;D:\software\java8.0\jdk\jre\lib\plugin.jar;D:\software\java8.0\jdk\jre\lib\resources.jar;D:\software\java8.0\jdk\jre\lib\rt.jar;E:\IntelliJIDEAWorkspace\javakuangjia\target\classes;D:\MavenRepository\org\springframework\boot\spring-boot-starter\2.1.1.RELEASE\spring-boot-starter-2.1.1.RELEASE.jar;D:\MavenRepository\org\springframework\boot\spring-boot\2.1.1.RELEASE\spring-boot-2.1.1.RELEASE.jar;D:\MavenRepository\org\springframework\boot\spring-boot-autoconfigure\2.1.1.RELEASE\spring-boot-autoconfigure-2.1.1.RELEASE.jar;D:\MavenRepository\org\springframework\boot\spring-boot-starter-logging\2.1.1.RELEASE\spring-boot-starter-logging-2.1.1.RELEASE.jar;D:\MavenRepository\org\apache\logging\log4j\log4j-to-slf4j\2.11.1\log4j-to-slf4j-2.11.1.jar;D:\MavenRepository\org\apache\logging\log4j\log4j-api\2.11.1\log4j-api-2.11.1.jar;D:\MavenRepository\org\slf4j\jul-to-slf4j\1.7.25\jul-to-slf4j-1.7.25.jar;D:\MavenRepository\javax\annotation\javax.annotation-api\1.3.2\javax.annotation-api-1.3.2.jar;D:\MavenRepository\org\springframework\spring-core\5.1.3.RELEASE\spring-core-5.1.3.RELEASE.jar;D:\MavenRepository\org\springframework\spring-jcl\5.1.3.RELEASE\spring-jcl-5.1.3.RELEASE.jar;D:\MavenRepository\net\bytebuddy\byte-buddy\1.9.5\byte-buddy-1.9.5.jar;D:\MavenRepository\org\hamcrest\hamcrest-core\1.3\hamcrest-core-1.3.jar;D:\MavenRepository\org\springframework\boot\spring-boot-starter-aop\2.1.1.RELEASE\spring-boot-starter-aop-2.1.1.RELEASE.jar;D:\MavenRepository\org\springframework\spring-aop\5.1.3.RELEASE\spring-aop-5.1.3.RELEASE.jar;D:\MavenRepository\org\aspectj\aspectjweaver\1.9.2\aspectjweaver-1.9.2.jar;D:\MavenRepository\org\springframework\boot\spring-boot-starter-web\2.1.1.RELEASE\spring-boot-starter-web-2.1.1.RELEASE.jar;D:\MavenRepository\org\springframework\boot\spring-boot-starter-json\2.1.1.RELEASE\spring-boot-starter-json-2.1.1.RELEASE.jar;D:\MavenRepository\com\fasterxml\jackson\datatype\jackson-datatype-jdk8\2.9.7\jackson-datatype-jdk8-2.9.7.jar;D:\MavenRepository\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.9.7\jackson-datatype-jsr310-2.9.7.jar;D:\MavenRepository\com\fasterxml\jackson\module\jackson-module-parameter-names\2.9.7\jackson-module-parameter-names-2.9.7.jar;D:\MavenRepository\org\springframework\boot\spring-boot-starter-tomcat\2.1.1.RELEASE\spring-boot-starter-tomcat-2.1.1.RELEASE.jar;D:\MavenRepository\org\apache\tomcat\embed\tomcat-embed-core\9.0.13\tomcat-embed-core-9.0.13.jar;D:\MavenRepository\org\apache\tomcat\embed\tomcat-embed-el\9.0.13\tomcat-embed-el-9.0.13.jar;D:\MavenRepository\org\apache\tomcat\embed\tomcat-embed-websocket\9.0.13\tomcat-embed-websocket-9.0.13.jar;D:\MavenRepository\org\hibernate\validator\hibernate-validator\6.0.13.Final\hibernate-validator-6.0.13.Final.jar;D:\MavenRepository\javax\validation\validation-api\2.0.1.Final\validation-api-2.0.1.Final.jar;D:\MavenRepository\org\jboss\logging\jboss-logging\3.3.2.Final\jboss-logging-3.3.2.Final.jar;D:\MavenRepository\org\springframework\spring-web\5.1.3.RELEASE\spring-web-5.1.3.RELEASE.jar;D:\MavenRepository\org\springframework\spring-webmvc\5.1.3.RELEASE\spring-webmvc-5.1.3.RELEASE.jar;D:\MavenRepository\org\springframework\spring-expression\5.1.3.RELEASE\spring-expression-5.1.3.RELEASE.jar;D:\MavenRepository\org\springframework\boot\spring-boot-starter-thymeleaf\2.1.1.RELEASE\spring-boot-starter-thymeleaf-2.1.1.RELEASE.jar;D:\MavenRepository\org\thymeleaf\thymeleaf-spring5\3.0.11.RELEASE\thymeleaf-spring5-3.0.11.RELEASE.jar;D:\MavenRepository\org\thymeleaf\thymeleaf\3.0.11.RELEASE\thymeleaf-3.0.11.RELEASE.jar;D:\MavenRepository\org\attoparser\attoparser\2.0.5.RELEASE\attoparser-2.0.5.RELEASE.jar;D:\MavenRepository\org\unbescape\unbescape\1.1.6.RELEASE\unbescape-1.1.6.RELEASE.jar;D:\MavenRepository\org\thymeleaf\extras\thymeleaf-extras-java8time\3.0.2.RELEASE\thymeleaf-extras-java8time-3.0.2.RELEASE.jar;D:\MavenRepository\org\springframework\boot\spring-boot-devtools\2.1.1.RELEASE\spring-boot-devtools-2.1.1.RELEASE.jar;D:\MavenRepository\mysql\mysql-connector-java\8.0.13\mysql-connector-java-8.0.13.jar;D:\MavenRepository\com\baomidou\mybatis-plus-boot-starter\3.0.6\mybatis-plus-boot-starter-3.0.6.jar;D:\MavenRepository\com\baomidou\mybatis-plus\3.0.6\mybatis-plus-3.0.6.jar;D:\MavenRepository\com\baomidou\mybatis-plus-extension\3.0.6\mybatis-plus-extension-3.0.6.jar;D:\MavenRepository\com\baomidou\mybatis-plus-core\3.0.6\mybatis-plus-core-3.0.6.jar;D:\MavenRepository\com\baomidou\mybatis-plus-annotation\3.0.6\mybatis-plus-annotation-3.0.6.jar;D:\MavenRepository\com\baomidou\mybatis-plus-generator\3.0.6\mybatis-plus-generator-3.0.6.jar;D:\MavenRepository\org\springframework\boot\spring-boot-starter-jdbc\2.1.1.RELEASE\spring-boot-starter-jdbc-2.1.1.RELEASE.jar;D:\MavenRepository\com\zaxxer\HikariCP\3.2.0\HikariCP-3.2.0.jar;D:\MavenRepository\org\springframework\spring-jdbc\5.1.3.RELEASE\spring-jdbc-5.1.3.RELEASE.jar;D:\MavenRepository\org\springframework\boot\spring-boot-configuration-processor\2.1.1.RELEASE\spring-boot-configuration-processor-2.1.1.RELEASE.jar;D:\MavenRepository\com\github\pagehelper\pagehelper-spring-boot-starter\1.2.5\pagehelper-spring-boot-starter-1.2.5.jar;D:\MavenRepository\org\mybatis\spring\boot\mybatis-spring-boot-starter\1.3.2\mybatis-spring-boot-starter-1.3.2.jar;D:\MavenRepository\org\mybatis\spring\boot\mybatis-spring-boot-autoconfigure\1.3.2\mybatis-spring-boot-autoconfigure-1.3.2.jar;D:\MavenRepository\org\mybatis\mybatis\3.4.6\mybatis-3.4.6.jar;D:\MavenRepository\org\mybatis\mybatis-spring\1.3.2\mybatis-spring-1.3.2.jar;D:\MavenRepository\com\github\pagehelper\pagehelper-spring-boot-autoconfigure\1.2.5\pagehelper-spring-boot-autoconfigure-1.2.5.jar;D:\MavenRepository\com\github\pagehelper\pagehelper\5.1.4\pagehelper-5.1.4.jar;D:\MavenRepository\com\github\jsqlparser\jsqlparser\1.0\jsqlparser-1.0.jar;D:\MavenRepository\com\github\oshi\oshi-core\3.9.1\oshi-core-3.9.1.jar;D:\MavenRepository\org\slf4j\slf4j-api\1.7.25\slf4j-api-1.7.25.jar;D:\MavenRepository\net\java\dev\jna\jna\4.5.2\jna-4.5.2.jar;D:\MavenRepository\net\java\dev\jna\jna-platform\4.5.2\jna-platform-4.5.2.jar;D:\MavenRepository\com\alibaba\druid-spring-boot-starter\1.1.14\druid-spring-boot-starter-1.1.14.jar;D:\MavenRepository\com\alibaba\druid\1.1.14\druid-1.1.14.jar;D:\MavenRepository\org\apache\commons\commons-lang3\3.8.1\commons-lang3-3.8.1.jar;D:\MavenRepository\commons-io\commons-io\2.5\commons-io-2.5.jar;D:\MavenRepository\commons-fileupload\commons-fileupload\1.3.3\commons-fileupload-1.3.3.jar;D:\MavenRepository\org\apache\shiro\shiro-core\1.4.0\shiro-core-1.4.0.jar;D:\MavenRepository\org\apache\shiro\shiro-lang\1.4.0\shiro-lang-1.4.0.jar;D:\MavenRepository\org\apache\shiro\shiro-cache\1.4.0\shiro-cache-1.4.0.jar;D:\MavenRepository\org\apache\shiro\shiro-crypto-hash\1.4.0\shiro-crypto-hash-1.4.0.jar;D:\MavenRepository\org\apache\shiro\shiro-crypto-core\1.4.0\shiro-crypto-core-1.4.0.jar;D:\MavenRepository\org\apache\shiro\shiro-crypto-cipher\1.4.0\shiro-crypto-cipher-1.4.0.jar;D:\MavenRepository\org\apache\shiro\shiro-config-core\1.4.0\shiro-config-core-1.4.0.jar;D:\MavenRepository\org\apache\shiro\shiro-config-ogdl\1.4.0\shiro-config-ogdl-1.4.0.jar;D:\MavenRepository\commons-beanutils\commons-beanutils\1.9.3\commons-beanutils-1.9.3.jar;D:\MavenRepository\org\apache\shiro\shiro-event\1.4.0\shiro-event-1.4.0.jar;D:\MavenRepository\org\apache\shiro\shiro-spring\1.4.0\shiro-spring-1.4.0.jar;D:\MavenRepository\org\apache\shiro\shiro-web\1.4.0\shiro-web-1.4.0.jar;D:\MavenRepository\org\apache\shiro\shiro-ehcache\1.4.0\shiro-ehcache-1.4.0.jar;D:\MavenRepository\net\sf\ehcache\ehcache-core\2.6.11\ehcache-core-2.6.11.jar;D:\MavenRepository\com\github\theborakompanioni\thymeleaf-extras-shiro\2.0.0\thymeleaf-extras-shiro-2.0.0.jar;D:\MavenRepository\com\alibaba\fastjson\1.2.47\fastjson-1.2.47.jar;D:\MavenRepository\eu\bitwalker\UserAgentUtils\1.19\UserAgentUtils-1.19.jar;D:\MavenRepository\org\springframework\spring-context-support\5.1.3.RELEASE\spring-context-support-5.1.3.RELEASE.jar;D:\MavenRepository\org\springframework\spring-beans\5.1.3.RELEASE\spring-beans-5.1.3.RELEASE.jar;D:\MavenRepository\org\springframework\spring-context\5.1.3.RELEASE\spring-context-5.1.3.RELEASE.jar;D:\MavenRepository\org\quartz-scheduler\quartz\2.3.0\quartz-2.3.0.jar;D:\MavenRepository\com\mchange\mchange-commons-java\0.2.11\mchange-commons-java-0.2.11.jar;D:\MavenRepository\org\apache\velocity\velocity\1.7\velocity-1.7.jar;D:\MavenRepository\commons-collections\commons-collections\3.2.1\commons-collections-3.2.1.jar;D:\MavenRepository\commons-lang\commons-lang\2.4\commons-lang-2.4.jar;D:\MavenRepository\com\github\penggle\kaptcha\2.3.2\kaptcha-2.3.2.jar;D:\MavenRepository\com\jhlabs\filters\2.0.235-1\filters-2.0.235-1.jar;D:\MavenRepository\io\springfox\springfox-swagger2\2.9.2\springfox-swagger2-2.9.2.jar;D:\MavenRepository\io\springfox\springfox-spi\2.9.2\springfox-spi-2.9.2.jar;D:\MavenRepository\io\springfox\springfox-core\2.9.2\springfox-core-2.9.2.jar;D:\MavenRepository\io\springfox\springfox-schema\2.9.2\springfox-schema-2.9.2.jar;D:\MavenRepository\io\springfox\springfox-swagger-common\2.9.2\springfox-swagger-common-2.9.2.jar;D:\MavenRepository\io\springfox\springfox-spring-web\2.9.2\springfox-spring-web-2.9.2.jar;D:\MavenRepository\com\google\guava\guava\20.0\guava-20.0.jar;D:\MavenRepository\com\fasterxml\classmate\1.4.0\classmate-1.4.0.jar;D:\MavenRepository\org\springframework\plugin\spring-plugin-core\1.2.0.RELEASE\spring-plugin-core-1.2.0.RELEASE.jar;D:\MavenRepository\org\springframework\plugin\spring-plugin-metadata\1.2.0.RELEASE\spring-plugin-metadata-1.2.0.RELEASE.jar;D:\MavenRepository\org\mapstruct\mapstruct\1.2.0.Final\mapstruct-1.2.0.Final.jar;D:\MavenRepository\io\swagger\swagger-annotations\1.5.21\swagger-annotations-1.5.21.jar;D:\MavenRepository\io\swagger\swagger-models\1.5.21\swagger-models-1.5.21.jar;D:\MavenRepository\com\fasterxml\jackson\core\jackson-annotations\2.9.0\jackson-annotations-2.9.0.jar;D:\MavenRepository\io\springfox\springfox-swagger-ui\2.9.2\springfox-swagger-ui-2.9.2.jar;D:\MavenRepository\org\jsoup\jsoup\1.11.3\jsoup-1.11.3.jar;D:\MavenRepository\org\apache\poi\poi-ooxml\3.17\poi-ooxml-3.17.jar;D:\MavenRepository\org\apache\poi\poi\3.17\poi-3.17.jar;D:\MavenRepository\org\apache\commons\commons-collections4\4.1\commons-collections4-4.1.jar;D:\MavenRepository\org\apache\poi\poi-ooxml-schemas\3.17\poi-ooxml-schemas-3.17.jar;D:\MavenRepository\org\apache\xmlbeans\xmlbeans\2.6.0\xmlbeans-2.6.0.jar;D:\MavenRepository\stax\stax-api\1.0.1\stax-api-1.0.1.jar;D:\MavenRepository\com\github\virtuald\curvesapi\1.04\curvesapi-1.04.jar;D:\MavenRepository\org\yaml\snakeyaml\1.23\snakeyaml-1.23.jar;D:\MavenRepository\org\springframework\boot\spring-boot-starter-websocket\2.1.1.RELEASE\spring-boot-starter-websocket-2.1.1.RELEASE.jar;D:\MavenRepository\org\springframework\spring-messaging\5.1.3.RELEASE\spring-messaging-5.1.3.RELEASE.jar;D:\MavenRepository\org\springframework\spring-websocket\5.1.3.RELEASE\spring-websocket-5.1.3.RELEASE.jar;D:\MavenRepository\com\google\zxing\core\3.3.2\core-3.3.2.jar;D:\MavenRepository\com\google\zxing\javase\3.3.2\javase-3.3.2.jar;D:\MavenRepository\com\beust\jcommander\1.72\jcommander-1.72.jar;D:\MavenRepository\com\github\jai-imageio\jai-imageio-core\1.3.1\jai-imageio-core-1.3.1.jar;D:\MavenRepository\com\belerweb\pinyin4j\2.5.0\pinyin4j-2.5.0.jar;D:\MavenRepository\cmcciot\onenet\nbapi\LWM2M_JAVA\1.0-SNAPSHOT\LWM2M_JAVA-1.0-SNAPSHOT.jar;D:\MavenRepository\org\json\json\20180130\json-20180130.jar;D:\MavenRepository\ch\qos\logback\logback-classic\1.2.3\logback-classic-1.2.3.jar;D:\MavenRepository\ch\qos\logback\logback-core\1.2.3\logback-core-1.2.3.jar;D:\MavenRepository\com\squareup\okhttp3\okhttp\3.5.0\okhttp-3.5.0.jar;D:\MavenRepository\com\squareup\okio\okio\1.11.0\okio-1.11.0.jar;D:\MavenRepository\cmcc\iot\onenet\javasdk\javaSDK\20190417\javaSDK-20190417.jar;D:\MavenRepository\com\fasterxml\jackson\core\jackson-databind\2.9.7\jackson-databind-2.9.7.jar;D:\MavenRepository\com\fasterxml\jackson\core\jackson-core\2.9.7\jackson-core-2.9.7.jar;D:\MavenRepository\org\apache\httpcomponents\httpmime\4.5.6\httpmime-4.5.6.jar;D:\MavenRepository\org\apache\httpcomponents\httpclient\4.5.6\httpclient-4.5.6.jar;D:\MavenRepository\org\apache\httpcomponents\httpcore\4.4.10\httpcore-4.4.10.jar;D:\MavenRepository\com\fasterxml\jackson\datatype\jackson-datatype-joda\2.9.7\jackson-datatype-joda-2.9.7.jar;D:\MavenRepository\joda-time\joda-time\2.10.1\joda-time-2.10.1.jar;D:\MavenRepository\com\tencent\xinge\1.0\xinge-1.0.jar;D:\MavenRepository\org\dom4j\dom4j\2.1.1\dom4j-2.1.1.jar;D:\MavenRepository\cn\hutool\hutool-all\4.5.15\hutool-all-4.5.15.jar;D:\MavenRepository\org\springframework\boot\spring-boot-starter-data-redis\2.1.1.RELEASE\spring-boot-starter-data-redis-2.1.1.RELEASE.jar;D:\MavenRepository\org\springframework\data\spring-data-redis\2.1.3.RELEASE\spring-data-redis-2.1.3.RELEASE.jar;D:\MavenRepository\org\springframework\data\spring-data-keyvalue\2.1.3.RELEASE\spring-data-keyvalue-2.1.3.RELEASE.jar;D:\MavenRepository\org\springframework\data\spring-data-commons\2.1.3.RELEASE\spring-data-commons-2.1.3.RELEASE.jar;D:\MavenRepository\org\springframework\spring-tx\5.1.3.RELEASE\spring-tx-5.1.3.RELEASE.jar;D:\MavenRepository\org\springframework\spring-oxm\5.1.3.RELEASE\spring-oxm-5.1.3.RELEASE.jar;D:\MavenRepository\io\lettuce\lettuce-core\5.1.3.RELEASE\lettuce-core-5.1.3.RELEASE.jar;D:\MavenRepository\io\projectreactor\reactor-core\3.2.3.RELEASE\reactor-core-3.2.3.RELEASE.jar;D:\MavenRepository\org\reactivestreams\reactive-streams\1.0.2\reactive-streams-1.0.2.jar;D:\MavenRepository\io\netty\netty-common\4.1.31.Final\netty-common-4.1.31.Final.jar;D:\MavenRepository\io\netty\netty-transport\4.1.31.Final\netty-transport-4.1.31.Final.jar;D:\MavenRepository\io\netty\netty-buffer\4.1.31.Final\netty-buffer-4.1.31.Final.jar;D:\MavenRepository\io\netty\netty-resolver\4.1.31.Final\netty-resolver-4.1.31.Final.jar;D:\MavenRepository\io\netty\netty-handler\4.1.31.Final\netty-handler-4.1.31.Final.jar;D:\MavenRepository\io\netty\netty-codec\4.1.31.Final\netty-codec-4.1.31.Final.jar;D:\MavenRepository\redis\clients\jedis\3.1.0\jedis-3.1.0.jar;D:\MavenRepository\org\apache\commons\commons-pool2\2.6.0\commons-pool2-2.6.0.jar;D:\MavenRepository\org\springframework\spring-test\5.0.9.RELEASE\spring-test-5.0.9.RELEASE.jar;D:\MavenRepository\commons-codec\commons-codec\1.12\commons-codec-1.12.jar;D:\MavenRepository\junit\junit\4.12\junit-4.12.jar;D:\MavenRepository\org\springframework\boot\spring-boot-test\2.1.1.RELEASE\spring-boot-test-2.1.1.RELEASE.jar com.ruoyi.project.redis.secondkill.SecondKillTest
用户:failuser56bjt4商品争抢失败,抢购失败
用户:succ99user3cbmxb抢购成功,当前抢购人数:1
用户:failuserj94g4r商品争抢失败,抢购失败
用户:succ98users2sy8j抢购成功,当前抢购人数:2
用户:failuserx09ql0商品争抢失败,抢购失败
用户:failuserxr36ji商品争抢失败,抢购失败
用户:failuserm9jkmk商品争抢失败,抢购失败
用户:failuserliqlm8商品争抢失败,抢购失败
用户:succ97user4wc9j6抢购成功,当前抢购人数:3
用户:failuserxzqhug商品争抢失败,抢购失败
用户:failuser5xa6eo商品争抢失败,抢购失败
用户:failusere5b1y0商品争抢失败,抢购失败
用户:failuserkcop8i商品争抢失败,抢购失败
用户:failuserarwlgp商品争抢失败,抢购失败
用户:failuserbx2sb9商品争抢失败,抢购失败
用户:failuser3wwsw2商品争抢失败,抢购失败
用户:failuserata1c6商品争抢失败,抢购失败
用户:failuserd394lm商品争抢失败,抢购失败
用户:failuserximbk1商品争抢失败,抢购失败
用户:failuser1gr60e商品争抢失败,抢购失败
用户:succ96userjxuefm抢购成功,当前抢购人数:4
用户:failuser20s1lr商品争抢失败,抢购失败
用户:failuser716q4a商品争抢失败,抢购失败
用户:failuserrbk09m商品争抢失败,抢购失败
用户:failuserhugud7商品争抢失败,抢购失败
用户:failuserw389ke商品争抢失败,抢购失败
用户:succ95useruapmqk抢购成功,当前抢购人数:5
用户:failuser1e42c4商品争抢失败,抢购失败
用户:failuser7fqccl商品争抢失败,抢购失败
用户:failuserbu22wa商品争抢失败,抢购失败
用户:failuser9tmdly商品争抢失败,抢购失败
用户:failusernwejrc商品争抢失败,抢购失败
用户:succ94userqpfjv9抢购成功,当前抢购人数:6
用户:failuseris8yzc商品争抢失败,抢购失败
用户:failuserytsjdx商品争抢失败,抢购失败
用户:failuseri4jo1y商品争抢失败,抢购失败
用户:failuseran3kui商品争抢失败,抢购失败
用户:failusert95gtf商品争抢失败,抢购失败
用户:failuserlob6j3商品争抢失败,抢购失败
用户:succ93userpxm4ij抢购成功,当前抢购人数:7
用户:failuserskwnbx商品争抢失败,抢购失败
用户:failusercefnmp商品争抢失败,抢购失败
用户:failuser2pm74p商品争抢失败,抢购失败
用户:failuser2t163w商品争抢失败,抢购失败
用户:failuserk4m5nj商品争抢失败,抢购失败
用户:failuseruycac8商品争抢失败,抢购失败
用户:failuserdotihe商品争抢失败,抢购失败
用户:failuserbcem0o商品争抢失败,抢购失败
用户:succ92userjwkbuf抢购成功,当前抢购人数:8
用户:failusery22alt商品争抢失败,抢购失败
用户:failuser1n0cs3商品争抢失败,抢购失败
用户:failuserokpr0x商品争抢失败,抢购失败
用户:failuserm7m8k2商品争抢失败,抢购失败
用户:failuserkpkdti商品争抢失败,抢购失败
用户:failuser9vi7ov商品争抢失败,抢购失败
用户:failuserovhtwf商品争抢失败,抢购失败
用户:succ91userlz7a35抢购成功,当前抢购人数:9
用户:failuserjbayu4商品争抢失败,抢购失败
用户:failuserz41sku商品争抢失败,抢购失败
用户:failuserdbrxj8商品争抢失败,抢购失败
用户:failusermnfj13商品争抢失败,抢购失败
用户:failuser05zu1q商品争抢失败,抢购失败
用户:failuserwn6sb5商品争抢失败,抢购失败
用户:failuserw1cgms商品争抢失败,抢购失败
用户:succ90userfbrqnc抢购成功,当前抢购人数:10
用户:failusern84my5商品争抢失败,抢购失败
用户:failuser49cw17商品争抢失败,抢购失败
用户:failuserkr65k7商品争抢失败,抢购失败
用户:failuserjj6oxp商品争抢失败,抢购失败
用户:succ89user9tna5j抢购成功,当前抢购人数:11
用户:failusermibvjg商品争抢失败,抢购失败
用户:failuseropie99商品争抢失败,抢购失败
用户:failuser3a7h32商品争抢失败,抢购失败
用户:succ88userxwesoc抢购成功,当前抢购人数:12
用户:failusern9intq商品争抢失败,抢购失败
用户:failusern569bh商品争抢失败,抢购失败
用户:failuser86c68o商品争抢失败,抢购失败
用户:failuserwfrkuv商品争抢失败,抢购失败
用户:succ87user1izaf1抢购成功,当前抢购人数:13
用户:failuserfpu80j商品争抢失败,抢购失败
用户:failuser8ak597商品争抢失败,抢购失败
用户:failuserv2l7cc商品争抢失败,抢购失败
用户:failuserodg4ny商品争抢失败,抢购失败
用户:succ86usergv9xlr抢购成功,当前抢购人数:14
用户:failuserrgpxpq商品争抢失败,抢购失败
用户:failuserxjgzms商品争抢失败,抢购失败
用户:failuser9f9pta商品争抢失败,抢购失败
用户:failuseruevldq商品争抢失败,抢购失败
用户:failuserrovnt0商品争抢失败,抢购失败
用户:failuserxjx3yc商品争抢失败,抢购失败
用户:succ85user176p3o抢购成功,当前抢购人数:15
用户:failuserjsbcxo商品争抢失败,抢购失败
用户:failuserjqnrvx商品争抢失败,抢购失败
用户:failuserikspnt商品争抢失败,抢购失败
用户:failuserquehzv商品争抢失败,抢购失败
用户:failuserz1n9d3商品争抢失败,抢购失败
用户:failuserm4ufap商品争抢失败,抢购失败
用户:failuserdohy21商品争抢失败,抢购失败
用户:failusersf8pdo商品争抢失败,抢购失败
用户:failuser5gst5g商品争抢失败,抢购失败

Process finished with exit code 0