RedisThread.java 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. package com.yihu.wlyy.redis;
  2. import com.yihu.wlyy.service.app.prescription.PrescriptionService;
  3. import com.yihu.wlyy.util.SystemConf;
  4. import org.apache.commons.lang3.StringUtils;
  5. import org.springframework.beans.factory.annotation.Autowired;
  6. import org.springframework.beans.factory.annotation.Value;
  7. import org.springframework.data.redis.core.StringRedisTemplate;
  8. import org.springframework.stereotype.Component;
  9. /**
  10. * Created by Trick on 2017/8/7.
  11. */
  12. @Component
  13. public class RedisThread implements Runnable {
  14. @Value("${spring.redis.host}")
  15. private String url;
  16. @Autowired
  17. private StringRedisTemplate redisTemplate;
  18. @Autowired
  19. private PrescriptionService prescriptionService;
  20. @Override
  21. public void run() {
  22. String key = SystemConf.getInstance().getSystemProperties().getProperty("redis_prescription_title");
  23. while (true){
  24. // redisTemplate.watch(key);
  25. String message = redisTemplate.opsForList().rightPop(key);
  26. // redisTemplate.unwatch();
  27. if(StringUtils.isEmpty(message)){
  28. try{
  29. Thread.sleep(1000L);//如果没有读取到记录,等待1秒
  30. }catch (Exception e){
  31. e.printStackTrace();
  32. }
  33. }else {
  34. prescriptionService.redisMessage(message);
  35. }
  36. }
  37. }
  38. }