import com.hazelcast.core.Hazelcast; import com.hazelcast.core.HazelcastInstance; import com.hazelcast.core.ITopic; import com.hazelcast.core.Message; import com.hazelcast.core.MessageListener; import com.hazelcast.logging.ILogger; import com.hazelcast.logging.Logger; import com.hazelcast.util.executor.StripedExecutor; import com.hazelcast.util.executor.StripedRunnable; import java.util.Date; public class SubscribedMember { private static final ILogger LOGGER = Logger.getLogger(SubscribedMember.class); private static final StripedExecutor EXECUTOR = new StripedExecutor(LOGGER, "listeners", 10, 10000); public static void main(String[] args) { HazelcastInstance hz = Hazelcast.newHazelcastInstance(); ITopic<Date> topic = hz.getTopic("topic"); topic.addMessageListener(new MessageListenerImpl("topic")); System.out.println("Subscribed"); } private static class MessageListenerImpl implements MessageListener<Date> { private final String topicName; MessageListenerImpl(String topicName) { this.topicName = topicName; } @Override public void onMessage(final Message<Date> m) { StripedRunnable task = new StripedRunnable() { @Override public int getKey() { return topicName.hashCode(); } @Override public void run() { System.out.println("Received: " + m.getMessageObject()); } }; EXECUTOR.execute(task); } } }