Capítulo 6. Control del caudal y contrapresión

Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com

Hasta ahora, nos hemos familiarizado mucho con la naturaleza push de RxJava. Los eventos se producen en algún punto del flujo para ser consumidos más tarde por todos los suscriptores. En realidad, nunca hemos prestado mucha atención a lo que ocurre si Observer es lento y no puede seguir el ritmo de los eventos emitidos desde dentro de Observable.create(). Todo este capítulo está dedicado a este problema.

RxJava tiene dos formas de tratar el hecho de que los productores sean más activos que los suscriptores:

  • Varios mecanismos de control de flujo, como el muestreo y la dosificación, se implementan mediante operadores incorporados

  • Los suscriptores pueden propagar su demanda y solicitar sólo tantos artículos como puedan procesar utilizando un canal de retroalimentación conocido como contrapresión.

Estos dos mecanismos se describen en este capítulo.

Control de caudal

Antes de que RxJava empezara a implementar la contrapresión (véase la sección "Contrapresión"), tratar con productores (Observables) que superaban a los consumidores (Observers) era una tarea difícil. Hay bastantes operadores que se inventaron para tratar con productores que empujan demasiados eventos, y la mayoría de ellos son bastante interesantes por sí mismos. Algunos son útiles para agrupar eventos por lotes; otros, para dejar caer ...

Get Programación Reactiva con RxJava now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.