packagequeue.redisQueue;importorg.junit.Before;importorg.junit.Test;importredis.clients.jedis.Jedis;importredis.clients.jedis.JedisPool;importredis.clients.jedis.JedisPoolConfig;importjava.io.IOException;/*** @ProjectName: cutter-point
* @Package: queue.redisQueue
* @ClassName: RedisQueueTest
* @Author: xiaof
* @Description: ${description}
* @Date: 2019/6/12 10:09
* @Version: 1.0*/
public classRedisQueueTest {public static JedisPool jedisPool = null;public staticJedis jedis;
@Beforepublic voidtest0() {//静态块,初始化加载,看来fQueue并不支持多进程操作,但是多线程是支持的
try{if(jedisPool == null) {
JedisPoolConfig jedisPoolConfig= newJedisPoolConfig();
jedisPoolConfig.setMaxTotal(10000);
jedisPoolConfig.setMaxIdle(2000);
jedisPoolConfig.setMaxWaitMillis(2000);
jedisPoolConfig.setTestOnBorrow(true);
jedisPoolConfig.setTestOnReturn(true);
jedisPool= new JedisPool(jedisPoolConfig, "127.0.0.1", 17399, 2000, "ZTE$soft987", 0);
}if(jedis == null) {
jedis=jedisPool.getResource();
}
}catch(Exception e) {
e.printStackTrace();
}
}
@Testpublic void test1() throwsInterruptedException {//读写取数据
for(int i = 0; i < 5; ++i) {
System.out.println("输出测试" +i);
RedisQueueProducter producter= new RedisQueueProducter(jedisPool.getResource(), "xiaof");
Thread t= newThread(producter);
t.start();
}while(true) {
Thread.sleep(1000);
}
}
@Testpublic void test2() throwsInterruptedException {//读写取数据
for(int i = 0; i < 2; ++i) {
System.out.println("输出测试" +i);//切记一定要重新获取Resource,不然无法并发操作
RedisQueueConsume fqueueConsume = new RedisQueueConsume(jedisPool.getResource(), "xiaof");
Thread t= newThread(fqueueConsume);
t.setDaemon(true);
t.start();
}while(true) {
Thread.sleep(1000);
}
}
}