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