瀏覽代碼

长处方

trick9191 7 年之前
父節點
當前提交
cd63dea7b4
共有 1 個文件被更改,包括 28 次插入14 次删除
  1. 28 14
      patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/redis/RedisThread.java

+ 28 - 14
patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/redis/RedisThread.java

@ -34,40 +34,54 @@ public class RedisThread implements Runnable {
    private PrescriptionService prescriptionService;
    @Autowired
    private PushMsgTask pushMsgTask;
    //redis链接
    private JedisPool pool;
    @Override
    public void run() {
        String key = SystemConf.getInstance().getSystemProperties().getProperty("redis_prescription_title");
        JedisPoolConfig poolConfig = new JedisPoolConfig();
        poolConfig.setMaxIdle(8);
        poolConfig.setMaxTotal(8);
        poolConfig.setMaxWaitMillis(-1);
        poolConfig.setMinIdle(1);
        JedisPool pool = null;
        if(StringUtils.isNotBlank(password)){
            pool = new JedisPool(poolConfig,host,port,100000,password);
        }else {
            pool = new JedisPool(poolConfig,host,port,100000);
        }
        //初始化链接池
        initPool();
        while (true){
            try {
                Jedis jedis = pool.getResource();
                String message = jedis.rpop(key);
                if(StringUtils.isEmpty(message)){
                    Thread.sleep(1000L);//如果没有读取到记录,等待1秒
                    sleep(1000L);//如果没有读取到记录,等待1秒
                }else {
                    redisMessage(message);
                }
            }catch (Exception e){
                e.printStackTrace();
                logger.info(e.getMessage());
                sleep(5000L);
                initPool();
            }
        }
    }
    public void sleep(Long time){
        try {
            Thread.sleep(time);
        }catch (Exception e){
            logger.error(e.getMessage());
        }
    }
    public void initPool(){
        JedisPoolConfig poolConfig = new JedisPoolConfig();
        poolConfig.setMaxIdle(8);
        poolConfig.setMaxTotal(8);
        poolConfig.setMaxWaitMillis(-1);
        poolConfig.setMinIdle(1);
        if(StringUtils.isNotBlank(password)){
            pool = new JedisPool(poolConfig,host,port,100000,password);
        }else {
            pool = new JedisPool(poolConfig,host,port,100000);
        }
    }
    public void redisMessage(String message){
        logger.info("redis_onMessage...:"+message);
        //this.unsubscribe();