limiter

package
v1.9.14 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 22, 2024 License: MIT Imports: 5 Imported by: 0

README

Ограничитель количества подключений.

Реализует интерфейс Limiter, который доступен в контейнере объектов.

type Limiter interface {
	Inc()
	Dec()
}
Объект конфигурации.
type Config struct {
	MaximumConnection uint16
}

Описание полей:

Поле Описание Значение по умолчанию
MaximumConnection Максимальное кол. активных соединений, этот параметр может быть передан одним из 3-х методов:
- флаг командной строки --server.socket.max_connection
- переменная окружения SERVER_SOCKET_MAX_CONNECTION
- значение в конфиг файле server.socket.max_connection
0

Если параметр MaximumConnection равен 0, то кол. активных соединений будет безлимитное.

Documentation

Index

Constants

View Source
const (
	MaximumConnectionFieldName = "server.socket.max_connection"

	MaximumConnectionDefault = uint16(0)
)

Variables

View Source
var Component = &app.Component{
	Dependencies: app.Components{
		logger.Component,
		configurator.Component,
	},
	Constructor: app.Constructor(func(container container.Container) error {
		return container.Provides(
			NewConfig,
			NewWithConfigurator,
		)
	}),
	BindFlags: app.BindFlags(func(flagSet *pflag.FlagSet, container container.Container) error {
		return container.Invoke(func(config *Config) {
			flagSet.Uint16Var(
				&config.MaximumConnection,
				MaximumConnectionFieldName,
				MaximumConnectionDefault,
				"maximum number of simultaneous connections",
			)
		})
	}),
}

Functions

This section is empty.

Types

type Config

type Config struct {
	MaximumConnection uint16
}

func Configuration

func Configuration(config *Config, configurator configurator.Configurator) *Config

func NewConfig

func NewConfig() *Config

type Limit

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

func NewLimit

func NewLimit(limit uint16) *Limit

func (*Limit) Dec

func (limiter *Limit) Dec()

func (*Limit) Inc

func (limiter *Limit) Inc()

type Limiter

type Limiter interface {
	Inc()
	Dec()
}

func New

func New(config *Config, informer logger.Informer) Limiter

func NewWithConfigurator

func NewWithConfigurator(config *Config, configurator configurator.Configurator, informer logger.Informer) Limiter

type Unlimited

type Unlimited struct{}

func NewUnlimited

func NewUnlimited() *Unlimited

func (*Unlimited) Dec

func (limiter *Unlimited) Dec()

func (*Unlimited) Inc

func (limiter *Unlimited) Inc()

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL