registry.go 510 B

123456789101112131415161718192021222324252627282930313233
  1. package registry
  2. import (
  3. "context"
  4. )
  5. var services = []Service{}
  6. func RegisterService(srv Service) {
  7. services = append(services, srv)
  8. }
  9. func GetServices() []Service {
  10. return services
  11. }
  12. type Service interface {
  13. Init() error
  14. }
  15. // Useful for alerting service
  16. type CanBeDisabled interface {
  17. IsDisabled() bool
  18. }
  19. type BackgroundService interface {
  20. Run(ctx context.Context) error
  21. }
  22. func IsDisabled(srv Service) bool {
  23. canBeDisabled, ok := srv.(CanBeDisabled)
  24. return ok && canBeDisabled.IsDisabled()
  25. }