Class HeartbeatManager
java.lang.Object
ru.pathcreator.pyc.rpc.core.internal.HeartbeatManager
Управляет 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
ConstructorsConstructorDescriptionHeartbeatManager(String name, long intervalNs, int missedLimit, LongConsumer sendHeartbeat, Runnable onDown, Runnable onUp) Создает менеджер heartbeat-состояния. -
Method Summary
-
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 threadintervalNs- период отправки heartbeat в наносекундах / heartbeat interval in nanosecondsmissedLimit- допустимое число пропущенных heartbeat-интервалов / allowed missed heartbeat intervalssendHeartbeat- callback отправки heartbeat, получает текущийnanoTime/ heartbeat sender callback that receives currentnanoTimeonDown- callback перехода канала в DOWN / callback invoked when the channel goes DOWNonUp- 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 /trueif the heartbeat state is UP
-