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