msrc
39 строк · 769.0 Байт
1package main2
3import (4"github.com/sirupsen/logrus"5"time"6)
7
8// Тестовая служба
9type service struct {10isStarted bool11isAlive bool12}
13
14// Возвращает статус состояния запуска сервиса
15func (s *service) IsStarted() bool {16return s.isStarted17}
18
19// Возвращает статус сервиса: живой или нет
20func (s *service) IsAlive() bool {21return s.isAlive22}
23
24// Запуск сервиса
25func (s *service) Run() error {26s.isStarted = true27s.isAlive = true28time.Sleep(time.Second * 2)29
30s.isAlive = false31return nil32}
33
34// Правильная остановка сервиса
35func (s *service) GracefulShutdown() {36logrus.Info(`Stop test service`)37
38time.Sleep(time.Millisecond * 500)39}
40