All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.scalecube.services.examples.BenchmarkServiceImpl Maven / Gradle / Ivy

package io.scalecube.services.examples;

import io.scalecube.services.api.ServiceMessage;
import io.scalecube.services.api.ServiceMessage.Builder;
import java.util.concurrent.Callable;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;

public class BenchmarkServiceImpl implements BenchmarkService {

  @Override
  public Mono requestVoid(ServiceMessage request) {
    return Mono.empty();
  }

  @Override
  public Mono one(ServiceMessage message) {
    Callable callable =
        () -> {
          long value = System.currentTimeMillis();
          return ServiceMessage.from(message)
              .header(SERVICE_RECV_TIME, value)
              .header(SERVICE_SEND_TIME, value)
              .data("hello")
              .build();
        };
    return Mono.fromCallable(callable);
  }

  @Override
  public Mono failure(ServiceMessage message) {
    return Mono.defer(() -> Mono.error(new RuntimeException("General failure")));
  }

  @Override
  public Flux infiniteStream(ServiceMessage message) {
    Builder builder = ServiceMessage.from(message);
    return Flux.range(0, Integer.MAX_VALUE)
        .map(i -> builder.header(SERVICE_SEND_TIME, System.currentTimeMillis()).build());
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy