|  |  | @ -78,10 +78,16 @@ public class ProjectChangedCustomListener implements MessageListenerConcurrently | 
			
		
	
		
			
				
					|  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |         String redisKey = RedisKeys.getProjectChangedMsgDistinceKey(msgObj.getCustomerId()); | 
			
		
	
		
			
				
					|  |  |  |         if (redisUtils.get(redisKey) == null) { | 
			
		
	
		
			
				
					|  |  |  |             consumeMessage(msgObj); | 
			
		
	
		
			
				
					|  |  |  |             log.info("消费了项目变动消息,customer id:{}", msgObj.getCustomerId()); | 
			
		
	
		
			
				
					|  |  |  |             // 有效期30秒
 | 
			
		
	
		
			
				
					|  |  |  |             // 该线程启动消费之后,其他线程再收到该客户id的消费请求,则不消费
 | 
			
		
	
		
			
				
					|  |  |  |             redisUtils.set(redisKey, msg, 30); | 
			
		
	
		
			
				
					|  |  |  |             try { | 
			
		
	
		
			
				
					|  |  |  |                 consumeMessage(msgObj); | 
			
		
	
		
			
				
					|  |  |  |             } catch (Exception e) { | 
			
		
	
		
			
				
					|  |  |  |                 // 如果消费失败了,清楚该key,收到消息之后可以继续消费
 | 
			
		
	
		
			
				
					|  |  |  |                 redisUtils.delete(redisKey); | 
			
		
	
		
			
				
					|  |  |  |                 throw e; | 
			
		
	
		
			
				
					|  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |             log.info("消费了项目变动消息,customer id:{}", msgObj.getCustomerId()); | 
			
		
	
		
			
				
					|  |  |  |         } else { | 
			
		
	
		
			
				
					|  |  |  |             log.info("该客户的项目变动消息刚刚消费,请等待30秒,customer id:{}", msgObj.getCustomerId()); | 
			
		
	
		
			
				
					|  |  |  |         } | 
			
		
	
	
		
			
				
					|  |  | 
 |