001
014
015 package com.liferay.portal.kernel.cache.cluster;
016
017 import java.util.List;
018 import java.util.concurrent.atomic.AtomicLong;
019
020
023 public class UniformPortalCacheClusterChannelSelector
024 implements PortalCacheClusterChannelSelector {
025
026 public long getSelectedNumber() {
027 return _eventCounter.get();
028 }
029
030 public PortalCacheClusterChannel select(
031 List<PortalCacheClusterChannel> portalCacheClusterChannels,
032 PortalCacheClusterEvent portalCacheClusterEvent) {
033
034 long count = _eventCounter.getAndIncrement();
035 int size = portalCacheClusterChannels.size();
036
037 return portalCacheClusterChannels.get((int)(count % size));
038 }
039
040 private AtomicLong _eventCounter = new AtomicLong(0);
041
042 }