Example usage for io.vertx.core.shareddata AsyncMap size

List of usage examples for io.vertx.core.shareddata AsyncMap size

Introduction

In this page you can find the example usage for io.vertx.core.shareddata AsyncMap size.

Prototype

default void size(Handler<AsyncResult<Integer>> resultHandler) 

Source Link

Document

Provide the number of entries in the map

Usage

From source file:org.entcore.infra.Starter.java

License:Open Source License

private void loadInvalidEmails() {
    MapFactory.getClusterMap("invalidEmails", vertx, new Handler<AsyncMap<Object, Object>>() {
        @Override//from  w w  w .  j  av a2 s .co m
        public void handle(final AsyncMap<Object, Object> invalidEmails) {
            if (invalidEmails != null) {
                invalidEmails.size(new Handler<AsyncResult<Integer>>() {
                    @Override
                    public void handle(AsyncResult<Integer> event) {
                        if (event.succeeded() && event.result() < 1) {
                            MongoDb.getInstance().findOne(HardBounceTask.PLATEFORM_COLLECTION,
                                    new JsonObject().put("type", HardBounceTask.PLATFORM_ITEM_TYPE),
                                    new Handler<Message<JsonObject>>() {
                                        @Override
                                        public void handle(Message<JsonObject> event) {
                                            JsonObject res = event.body().getJsonObject("result");
                                            if ("ok".equals(event.body().getString("status")) && res != null
                                                    && res.getJsonArray("invalid-emails") != null) {
                                                for (Object o : res.getJsonArray("invalid-emails")) {
                                                    invalidEmails.put(o, "", new Handler<AsyncResult<Void>>() {
                                                        @Override
                                                        public void handle(AsyncResult<Void> event) {
                                                            if (event.failed()) {
                                                                log.error("Error adding invalid email.",
                                                                        event.cause());
                                                            }
                                                        }
                                                    });
                                                }
                                            } else {
                                                log.error(event.body().getString("message"));
                                            }
                                        }
                                    });
                        }
                    }
                });
            }
            EmailFactory emailFactory = new EmailFactory(vertx, config);
            try {
                new CronTrigger(vertx, config.getString("hard-bounces-cron", "0 0 7 * * ? *")).schedule(
                        new HardBounceTask(emailFactory.getSender(), config.getInteger("hard-bounces-day", -1),
                                new TimelineHelper(vertx, getEventBus(vertx), config), invalidEmails));
            } catch (ParseException e) {
                log.error(e.getMessage(), e);
                vertx.close();
            }
        }
    });
}