...

Package idle

import "google.golang.org/grpc/internal/idle"
Overview
Index

Overview ▾

Package idle contains a component for managing idleness (entering and exiting) based on RPC activity.

type Enforcer

Enforcer is the functionality provided by grpc.ClientConn to enter and exit from idle mode.

type Enforcer interface {
    ExitIdleMode() error
    EnterIdleMode()
}

type Manager

Manager implements idleness detection and calls the configured Enforcer to enter/exit idle mode when appropriate. Must be created by NewManager.

type Manager struct {
    // contains filtered or unexported fields
}

func NewManager

func NewManager(enforcer Enforcer, timeout time.Duration) *Manager

NewManager creates a new idleness manager implementation for the given idle timeout. It begins in idle mode.

func (*Manager) Close

func (m *Manager) Close()

func (*Manager) EnterIdleModeForTesting

func (m *Manager) EnterIdleModeForTesting()

func (*Manager) ExitIdleMode

func (m *Manager) ExitIdleMode() error

ExitIdleMode instructs m to call the enforcer's ExitIdleMode and update m's internal state.

func (*Manager) OnCallBegin

func (m *Manager) OnCallBegin() error

OnCallBegin is invoked at the start of every RPC.

func (*Manager) OnCallEnd

func (m *Manager) OnCallEnd()

OnCallEnd is invoked at the end of every RPC.