package com.yihu.wlyy.redis; import com.yihu.wlyy.service.app.prescription.PrescriptionService; import com.yihu.wlyy.util.SystemConf; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Component; import redis.clients.jedis.Jedis; /** * Created by Trick on 2017/8/7. */ @Component public class RedisThread implements Runnable { private static Logger logger = LoggerFactory.getLogger(RedisThread.class); @Value("${channel.redis.host}") private String url; @Value("${channel.redis.port}") private Integer port; @Value("${channel.redis.password}") private String password; @Autowired private StringRedisTemplate redisTemplate; @Autowired private PrescriptionService prescriptionService; @Override public void run() { String key = SystemConf.getInstance().getSystemProperties().getProperty("redis_prescription_title"); Jedis jedis = new Jedis(url,port); if(StringUtils.isNotBlank(password)){ jedis.auth(password); } while (true){ try { String message = jedis.rpop(key); if(StringUtils.isEmpty(message)){ Thread.sleep(1000L);//如果没有读取到记录,等待1秒 }else { prescriptionService.redisMessage(message); } }catch (Exception e){ e.printStackTrace(); logger.info(e.getMessage()); } } } }