limiter

package
v0.0.0-...-6618439 Latest Latest
Warning

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

Go to latest
Published: May 25, 2016 License: BSD-3-Clause Imports: 5 Imported by: 0

Documentation

Index

Constants

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

Variables

This section is empty.

Functions

func Inst

func Inst() common.SendingService

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

Types

type Cleaner

type Cleaner struct{}

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

type Config

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

type Kind

type Kind string

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

type Limit

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

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

ограничение

type Limiter

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

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

type Service

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

	Configs map[string]*Config `yaml:"postmans"`
}

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

func (*Service) Events

func (s *Service) Events() chan *common.SendEvent

канал для приема событий отправки писем

func (*Service) OnFinish

func (s *Service) OnFinish()

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

func (*Service) OnInit

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

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

func (*Service) OnRun

func (s *Service) OnRun()

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

Jump to

Keyboard shortcuts

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