Class HeartbeatManager

java.lang.Object
ru.pathcreator.pyc.rpc.core.internal.HeartbeatManager

public final class HeartbeatManager extends Object
Управляет heartbeat-состоянием RPC-канала.

Менеджер периодически отправляет heartbeat-кадры, принимает уведомления о входящих heartbeat-кадрах и переводит канал между состояниями UP и DOWN. При переходе в DOWN он вызывает callback отказа, а при восстановлении входящих heartbeat-кадров вызывает callback подъема.

Manages heartbeat state for an RPC channel. It periodically sends heartbeat frames, tracks incoming heartbeat notifications, and switches the channel between UP and DOWN states.

  • Constructor Summary

    Constructors
    Constructor
    Description
    HeartbeatManager(String name, long intervalNs, int missedLimit, LongConsumer sendHeartbeat, Runnable onDown, Runnable onUp)
    Создает менеджер heartbeat-состояния.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Останавливает heartbeat-поток и ожидает его завершения.
    boolean
    Проверяет, считается ли удаленная сторона подключенной.
    void
    Отмечает получение heartbeat-кадра от удаленной стороны.
    void
    Запускает фоновый heartbeat-поток.

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • HeartbeatManager

      public HeartbeatManager(String name, long intervalNs, int missedLimit, LongConsumer sendHeartbeat, Runnable onDown, Runnable onUp)
      Создает менеджер heartbeat-состояния.

      Creates a heartbeat state manager.

      Parameters:
      name - имя канала для служебного потока / channel name for the worker thread
      intervalNs - период отправки heartbeat в наносекундах / heartbeat interval in nanoseconds
      missedLimit - допустимое число пропущенных heartbeat-интервалов / allowed missed heartbeat intervals
      sendHeartbeat - callback отправки heartbeat, получает текущий nanoTime / heartbeat sender callback that receives current nanoTime
      onDown - callback перехода канала в DOWN / callback invoked when the channel goes DOWN
      onUp - callback перехода канала в UP / callback invoked when the channel goes UP
  • Method Details

    • start

      public void start()
      Запускает фоновый heartbeat-поток.

      Starts the background heartbeat thread.

    • close

      public void close()
      Останавливает heartbeat-поток и ожидает его завершения.

      Stops the heartbeat thread and waits for it to finish.

    • onHeartbeatReceived

      public void onHeartbeatReceived()
      Отмечает получение heartbeat-кадра от удаленной стороны.

      Marks that a heartbeat frame has been received from the remote side.

    • isConnected

      public boolean isConnected()
      Проверяет, считается ли удаленная сторона подключенной.

      Checks whether the remote side is considered connected.

      Returns:
      true, если heartbeat-состояние канала UP / true if the heartbeat state is UP