package com.github.ltsopensource.redis;
import com.github.ltsopensource.core.logger.Logger;
import com.github.ltsopensource.core.logger.LoggerFactory;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
public class Program {
public static final String CHANNEL_NAME = "commonChannel";
private static Logger logger = LoggerFactory.getLogger(Program.class);
public static void main(String[] args) throws Exception {
final JedisPoolConfig poolConfig = new JedisPoolConfig();
final JedisPool jedisPool = new JedisPool(poolConfig, "localhost", 6379, 0);
final Jedis subscriberJedis = jedisPool.getResource();
final Subscriber subscriber = new Subscriber();
new Thread(new Runnable() {
@Override
public void run() {
try {
logger.info("Subscribing to \"commonChannel\". This thread will be blocked.");
subscriberJedis.subscribe(subscriber, CHANNEL_NAME);
logger.info("Subscription ended.");
} catch (Exception e) {
logger.error("Subscribing failed.", e);
}
}
}).start();
final Jedis publisherJedis = jedisPool.getResource();
new Publisher(publisherJedis, CHANNEL_NAME).start();
subscriber.unsubscribe();
subscriberJedis.close();
publisherJedis.close();
jedisPool.destroy();
}
}