limiter

package
v0.0.0-...-d6bd6e3 Latest Latest
Warning

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

Go to latest
Published: Feb 14, 2022 License: BSD-3-Clause Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Inst

func Inst() common.SendingService

Inst создает сервис ограничений

Types

type Cleaner

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

Cleaner чистильщик, проверяет значения ограничений и обнуляет значения ограничений

type Config

type Config struct {
	// ограничения для почтовых сервисов, в качестве ключа используется домен
	Limits map[string]*Limit `yaml:"limits"`
}

type Kind

type Kind string

тип ограничения

const (
	SecondKind Kind = "second"
	MinuteKind Kind = "minute"
	HourKind   Kind = "hour"
	DayKind    Kind = "day"
)

type Limit

type Limit struct {
	// максимально допустимое количество писем
	Value int32 `json:"value"`

	// тип ограничения
	Type Kind `json:"type"`
	// contains filtered or unexported fields
}

ограничение

type Limiter

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

Limiter ограничитель, проверяет количество отправленных писем почтовому сервису

type Service

type Service struct {
	// LimitersCount количество горутин проверяющих количество отправленных писем
	LimitersCount int `yaml:"workers"`

	Configs map[string]*Config `yaml:"postmans"`
	// contains filtered or unexported fields
}

Service сервис ограничений, следит за тем, чтобы почтовым сервисам не отправилось больше писем, чем нужно

func (*Service) Event

func (s *Service) Event(ev *common.SendEvent) bool

Event send event

func (*Service) OnFinish

func (s *Service) OnFinish()

OnFinish завершает работу сервиса соединений

func (*Service) OnInit

func (s *Service) OnInit(event *common.ApplicationEvent)

OnInit инициализирует сервис

func (*Service) OnRun

func (s *Service) OnRun()

OnRun запускает проверку ограничений и очистку значений лимитов

Jump to

Keyboard shortcuts

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