private Behavior onTick()

in pekko-sample-cluster-java/src/main/java/sample/cluster/transformation/Frontend.java [85:110]


  private Behavior<Event> onTick() {
    if (workers.isEmpty()) {
      getContext().getLog().warn("Got tick request but no workers available, not sending any work");
    } else {
      // how much time can pass before we consider a request failed
      Duration timeout = Duration.ofSeconds(5);
      ActorRef<Worker.TransformText> selectedWorker = workers.get(jobCounter % workers.size());
      getContext().getLog().info("Sending work for processing to {}", selectedWorker);
      String text = "hello-" + jobCounter;
      getContext().ask(
          Worker.TextTransformed.class,
          selectedWorker,
          timeout,
          responseRef -> new Worker.TransformText(text, responseRef),
          (response, failure) -> {
            if (response != null) {
              return new TransformCompleted(text, response.text);
            } else {
              return new JobFailed("Processing timed out", text);
            }
          }
      );
      jobCounter++;
    }
    return this;
  }