README
¶
Отслеживание сигнала на закрытие приложения.
Компонент для управления глобальным контекстом, при закрытии которого приложение должно остановить все процессы и закрыться.
Реализует интерфейс Closer
, который доступен в контейнере объектов.
type Closer interface {
io.Closer
GetContext() context.Context
Closed() bool
}
Доступные методы.
Close
- наследуется от интерфейсаio.Closer
, принудительно закрывает глобальный контекст;GetContext
- возвращает глобальный контекст;Closed
- возвращает флаг, закрытости глобального контекста, метод потокобезопасный;
Пакет предоставляет две реализации:
- OsSignal
- Manual
OsSignal.
Прослушивает системные вызовы:
SIGINT
;SIGTERM
;SIGABRT
.
При получении одного из этих сигналов, закрывает контекст. Эта реализация используется в приложении по умолчанию.
Manual.
Закрывает контекст, только при вызове метода Close
.
Полезен когда надо сделать задержку перед закрытием приложения.
Documentation
¶
Index ¶
Constants ¶
View Source
const (
ExitCodeError int = 1
)
Variables ¶
View Source
var ManualComponent = &app.Component{ Constructor: func(container container.Container) error { return container.Provides( NewManual, func(closer *Manual) Closer { return closer }, ) }, }
View Source
var OsSignalComponent = &app.Component{ Constructor: func(container container.Container) error { return container.Provides( NewOsSignal, func(closer *OsSignal) Closer { return closer }, ) }, BindFlags: nil, Serve: func(c container.Container) error { closer, err := container.Get[*OsSignal](c) if err != nil { return err } closer.serve() return nil }, }
Functions ¶
This section is empty.
Types ¶
type Manual ¶
type Manual struct {
// contains filtered or unexported fields
}
func (*Manual) GetContext ¶
type OsSignal ¶
type OsSignal struct {
// contains filtered or unexported fields
}
func NewOsSignal ¶
func NewOsSignal() *OsSignal
func (*OsSignal) GetContext ¶
Click to show internal directories.
Click to hide internal directories.