void init() { for (int i = 0; i < threads; i++) { esOrderConsumer.execute(new PositionQueueSlurper()); } topicFeed.addMessageListener(new StockStreamListener()); mapNewOrders.addLocalEntryListener(new NewOrderListener()); startStreamer(); Executors.newSingleThreadExecutor() .execute( new Runnable() { public void run() { while (true) { try { Thread.sleep(5000); long feeds = countReceivedStockUpdates.getAndSet(0) / 5; long orders = countOrdersProcessed.getAndSet(0) / 5; long events = countNewOrderEvents.getAndSet(0) / 5; long views = countPositionViews.getAndSet(0) / 5; log( "Feeds:" + feeds + ", OrdersProcessed:" + orders + ", newOrderEvents:" + events + ", Views:" + views); } catch (Exception e) { e.printStackTrace(); } } } }); }
public static void main(String[] args) throws ExecutionException, InterruptedException { Set<String> set = new HashSet<>(Arrays.asList("1", "2", "3")); CompletableFuture<Void> future = CompletableFuture.runAsync( () -> { HazelcastInstance hz1 = Hazelcast.newHazelcastInstance(); IMap<String, Integer> map = hz1.getMap("somemap"); EntryUpdatedListener<String, String> stringStringEntryUpdatedListener = event -> System.out.println("Entry Updated:" + event); map.addLocalEntryListener(stringStringEntryUpdatedListener); set.forEach(k -> map.put(k, Integer.valueOf(k))); set.forEach(k -> map.put(k, Integer.valueOf(k) + 10)); }) .thenRun( () -> { HazelcastInstance hz2 = Hazelcast.newHazelcastInstance(); IMap<String, Integer> map = hz2.getMap("somemap"); Set<String> localKeySet = map.localKeySet(); set.removeAll(localKeySet); System.out.println("out keys:" + set); map.executeOnKeys( set, new AbstractEntryProcessor<String, Integer>() { @Override public Object process(Map.Entry<String, Integer> entry) { return entry.setValue(2); } }); // Object executeOnKey( K key, EntryProcessor entryProcessor ); // void submitToKey( K key, EntryProcessor entryProcessor, // ExecutionCallback callback ); // Map<K, Object> executeOnEntries( EntryProcessor entryProcessor ); // Map<K, Object> executeOnEntries( EntryProcessor entryProcessor, // Predicate predicate ); }); future.get(); }