RxJava L'Extraction Des Observables En Parallèle

J'ai besoin d'aide dans la mise en œuvre parallèle des appels asynchrones dans RxJava. J'ai ramassé un cas d'utilisation simple dans lequel le PREMIER appel extrait (plutôt recherches) une liste de produits (Tuiles) à afficher. Les appels suivants de sortir et de chercher de l' (A) des EXAMENS et (B) IMAGES de PRODUITS

Après plusieurs tentatives, j'ai eu à cet endroit.

 1    Observable<Tile> searchTile = searchServiceClient.getSearchResults(searchTerm);
 2    List<Tile> allTiles = new ArrayList<Tile>();
 3    ClientResponse response = new ClientResponse();

 4    searchTile.parallel(oTile -> {
 5      return oTile.flatMap(t -> {
 6        Observable<Reviews> reviews = reviewsServiceClient.getSellerReviews(t.getSellerId());
 7        Observable<String> imageUrl = reviewsServiceClient.getProductImage(t.getProductId());

 8        return Observable.zip(reviews, imageUrl, (r, u) -> {
 9          t.setReviews(r);
10          t.setImageUrl(u);

11          return t;
12        });

13      });
14    }).subscribe(e -> {
15      allTiles.add((Tile) e);
16    });

Ligne 1: sort et va chercher le produit (Carrelage) à afficher

Ligne 4: Nous prenons la liste de l'Observable et l'ÉCLAT de récupérer les commentaires et imageUrls

Mensonge 6,7: Récupérer les Observables de l'examen et Observables url

Ligne 8: Enfin les 2 sont observables zippé jusqu'au retour d'une mise à jour Observables

Ligne 15: enfin la ligne 15 rassemble tous les produits individuels à être affiché dans une collection qui peut être retourné à l'appel de la couche

Tandis que les Observables a été fragmenté et dans nos tests s'exécutent plus de 4 threads différents; aller chercher des commentaires et des images semble être l'un après l'autre. Je soupçonne que le zip étape sur la ligne 8 est essentiellement l'origine de l'ordre d'invocation de la la 2 observables (examens et url).

RxJava L'Extraction Des Observables En Parallèle

Ce groupe ont toute proposition à, parallèlement chercher reiews et l'url de l'image. En essence, la chute d'eau tableau joint ci-dessus devrait être empilés à la verticale. Les appels à commentaires et les images doivent être en parallèle

merci
anand raman

  • Comment allez-vous générer le Transfert frise chronologique? Il a l'air assez cool et utile. Voudrais l'utiliser moi-même.
  • Depuis que mon système était de faire des appels externes j'ai simplement mandaté les appels par le biais de violoneux. Fiddler a une option pour générer réseau des échéanciers. Vous êtes essentiellement en voyant ce point de vue. Après fiddler a été configuré pour l'utilisation de proxy demandes; il vous suffit de sélectionnez les sessions qui vous intéressent, puis cliquez sur l'onglet timeline sur le volet de droite. grâce anand
InformationsquelleAutor diduknow | 2014-10-08