Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

160
Views
Propagar el equipaje de Sleuth en flujos paralelos

Esta pregunta es exactamente la misma que esta , que en realidad no se respondió (ese código solo usa un hilo). Mi código se ve así en este momento

 CompletableFuture completableFuture = CompletableFuture.supplyAsync(() -> { foo.stream().parallel() .forEach(bar -> { //business logic } ); return null; }, new TraceableExecutorService(this.beanFactory, Executors.newFixedThreadPool(threads), "fooBarStream")); completableFuture.get();

sin embargo, solo un hilo está correctamente trazado. Usar .parallelStream() o un LazyTraceExecutor directamente en lugar de un TraceableExecutorService no ayudó.

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Parece funcionar gracias a este ejemplo . El fragmento anterior se convierte en:

 TraceableExecutorService executorService = new TraceableExecutorService(this.beanFactory, Executors.newFixedThreadPool(threads), "fooStream"); CompletableFuture.allOf(runnablesBusinessLogic(foo,executorService)).get();

donde está runnablesBusinessLogic

 private CompletableFuture<Void>[] runnablesBusinessLogic(List<FooBar> foo, ExecutorService executorService) { List<CompletableFuture<?>> futures = new ArrayList<>(); for (FooBar f : foo) { futures.add(CompletableFuture.runAsync(() -> { businessLogic(f); return; }, executorService)); } return futures.toArray(new CompletableFuture[futures.size()]); }

Si entendí el ejemplo (y la discusión detrás del estado actual de la documentación) correctamente, Sleuth no puede trabajar con un ForkJoinPool (y por lo tanto con flujos paralelos) automáticamente. La idea principal para que funcione no es crear un CompletableFuture y dividirlo, sino crear varios futuros (y unirlos).

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!