Vertx 3 Débutant. J'utilise l'API Java. L'utilisation est pour une application de reporting qui traite généralement des objets volumineux (POJO). Ces POJO contiennent les données à exporter en PDF, CSV, etc. et ce sont généralement des listes de cartes. Je me demande si je dois transmettre de manière asynchrone les données à différents verticles via le EventBus, il va y avoir un coût de sérialisation/désérialisation. Existe-t-il des astuces/astuces pour traiter les gros objets afin de ne pas avoir à subir une énorme surcharge de sérialisation/désérialisation?Vertx 3 - sérialisation de grands objets Java
0
A
Répondre
0
Vous pouvez déployer travailleur anonyme verticle à faire:
En supposant LongOperatingVerticle est le verticle qui gère votre POJO de:
class LongOperatingVerticle extends AbstractVerticle {
@Override
public void start() {
final String pojo = "Very long file...";
final Future<String> f = Future.future();
// Anonymous verticle in worker mode
this.vertx.deployVerticle(new AbstractVerticle() {
@Override
public void start() throws Exception {
Thread.sleep(5000);
f.complete("Ok");
}
}, new DeploymentOptions().setWorker(true));
System.out.println("Will wait now");
f.setHandler((e) -> {
System.out.println(e.result());
});
}
}
0
Je pense qu'il est mauvaise idée d'envoyer quoi que ce soit à travers un grand EventBus. Vous pouvez utiliser vertex SharedData et envoyer uniquement l'identifiant de votre objet.
LocalMap<String, LargeObject> map = vertx.sharedData.getLocalMap("uniq-map-id");
map.put("unique-id", data);
vertx.eventBus.send(ADDRESS, "unique-id");
Quelle pourrait être la taille? –
http://stackoverflow.com/questions/129695/java-serializing-a-huge-amount-of-data-to-a-single-file –
allant de 50 Mo à 100 Mo – user1189332