Exemple #1
0
 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();
  }