Class QNodeLifecycle

java.lang.Object
com.kingsrook.qqq.backend.core.cluster.QNodeLifecycle

public final class QNodeLifecycle extends Object
This node's lifecycle in a cluster: a node that is draining reports not-ready (so the load balancer stops sending it requests), stops claiming new work, and lets in-flight work finish before it stops (spec section D). Anything that should react (the registry in qbit-cluster, job claimers) adds a listener; readiness probes call isDraining().
  • Method Details

    • isDraining

      public static boolean isDraining()
      Whether this node is draining.
    • getDrainReason

      public static String getDrainReason()
      Why this node is draining (null when it is not).
    • startDraining

      public static void startDraining(String reason)
      Start draining (idempotent). Listeners run once, on the first call.
    • onDrain

      public static void onDrain(Consumer<String> listener)
      Add a listener called when draining starts (immediately, if it already has).
    • resetForTests

      public static void resetForTests()
      Reset (tests only).