msrc
40 строк · 835.0 Байт
1package main
2
3import (
4"github.com/pkg/errors"
5"github.com/sirupsen/logrus"
6"time"
7)
8
9// Тестовая служба
10type serviceError struct {
11isStarted bool
12isAlive bool
13}
14
15// Возвращает статус состояния запуска сервиса
16func (s *serviceError) IsStarted() bool {
17return s.isStarted
18}
19
20// Возвращает статус сервиса: живой или нет
21func (s *serviceError) IsAlive() bool {
22return s.isAlive
23}
24
25// Запуск сервиса
26func (s *serviceError) Run() error {
27s.isStarted = true
28s.isAlive = true
29time.Sleep(time.Second * 1)
30
31s.isAlive = false
32return errors.New(`test`)
33}
34
35// Правильная остановка сервиса
36func (s *serviceError) GracefulShutdown() {
37logrus.Info(`Stop error service`)
38
39time.Sleep(time.Millisecond * 500)
40}
41