Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

284
Vistas
Flujo, espere un momento, luego reúna todos los elementos emitidos en una lista y mantenga este proceso en ejecución

Tengo un productor de flujo que emitirá elementos con un período aleatorio, no quiero manejar estos elementos una vez emitidos, prefiero reunirlos en una lista, luego manejarlos y mantener este proceso en ejecución.

Por ejemplo, si quiero tener 2s como un período, lo que quiero obtener para el siguiente flujo es

 val flow = flow{ for(i in 1..5){ emit(i) delay(1100) } } //#1 handle [1,2] //#2 handle [3,4] //#3 handle [5]

A continuación se muestra lo que intenté pero fallé:

  • take(2) , esto hará que el flujo finalice después de obtener dos elementos, y no hay tiempo para controlar
  • collectToList().sample(2s) , esta es mi función personalizada, agregando elementos a una lista. Pero el problema es que necesito borrar la lista en collectToList() después de sample() , de lo contrario, la lista se agregará para siempre, pero si hago el borrado, esto puede causar problemas de concurrencia como "agregar un nuevo elemento a la lista solo antes de borrar la lista"

¿Alguna idea mejor?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

La respuesta corta es que no hay una función integrada para esto en este momento AFAIK.

Creo que lo que está buscando es un operador chunked basado en el tiempo, que se ha discutido bastante , pero aún no ha llegado a la biblioteca. No estoy seguro si está en sus planes para el futuro cercano.

Tal vez pueda echar un vistazo a la implementación propuesta en esta solicitud de combinación y adaptarla a sus necesidades (probablemente no necesite tanta flexibilidad, ni las estrategias de fragmentación adicionales). Lo siento, estoy afk, así que no puedo hacer la adaptación yo mismo.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda