class ConsumerGroupTopicServiceImpl extends AbstractBaseService<ConsumerGroupTopicEntity> implements CacheUpdateService, ConsumerGroupTopicService, TimerService {

	@Override
	public void forceUpdateCache() {
		Transaction transaction = Tracer.newTransaction("Timer", "ConsumerGroupTopic-updateCache");
		TraceMessageItem traceMessageItem = new TraceMessageItem();
		try {
			List<ConsumerGroupTopicEntity> consumerGroupEntities = getList();
			MqReadMap<Long, Map<String, ConsumerGroupTopicEntity>> dataMap = new MqReadMap<>(consumerGroupEntities.size()/3);
			MqReadMap<String, ConsumerGroupTopicEntity> groupTopicMap = new MqReadMap<>(consumerGroupEntities.size());
			MqReadMap<String, List<ConsumerGroupTopicEntity>> topicSubscribeMap = new MqReadMap<>(consumerGroupEntities.size());

			consumerGroupEntities.forEach(t1 -> {
				if (!dataMap.containsKey(t1.getConsumerGroupId())) {
					dataMap.put(t1.getConsumerGroupId(), new HashMap<>());
				}
				dataMap.get(t1.getConsumerGroupId()).put(t1.getTopicName(), t1);

				if (!groupTopicMap.containsKey(t1.getConsumerGroupName() + "_" + t1.getTopicName())) {
					groupTopicMap.put(t1.getConsumerGroupName() + "_" + t1.getTopicName(), t1);
				}

				if(!topicSubscribeMap.containsKey(t1.getTopicName())){
					topicSubscribeMap.put(t1.getTopicName(),new ArrayList<>());
				}
				topicSubscribeMap.get(t1.getTopicName()).add(t1);

			});
			dataMap.setOnlyRead();
			groupTopicMap.setOnlyRead();
			consumerGroupTopicRefMap.set(dataMap);
			groupTopicRefMap.set(groupTopicMap);
			topicSubscribeRefMap.set(topicSubscribeMap);
			traceMessageItem.status = "count-" + groupTopicMap.size();
			consumerGroupTopicCacheTrace.add(traceMessageItem);
			transaction.setStatus(Transaction.SUCCESS);
		} catch (Exception e) {
			transaction.setStatus(e);
			lastUpdateEntity = null;
		} finally {
			transaction.complete();
		}
	}

}