service-pkg

module
v0.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 3, 2026 License: MIT

README

service-pkg

Набор утилит и мини‑фреймворков для сервисов на Go: аккуратный каркас приложения (graceful shutdown, обработка сигналов, рекавери), лидер‑элекция через Redis, планировщик задач, барьер готовности, обёртки для PostgreSQL и ClickHouse, HTTP (chi) и gRPC серверы с полезными мидлварами, логирование на базе zap, простые утилиты.

Цель — ускорить запуск продуктивных сервисов: «сшить» инфраструктурные куски в согласованный рантайм с безопасной остановкой и понятными контрактами.

Возможности

  • Единая точка входа приложения: управление сигналами ОС (SIGTERM/SIGINT/SIGQUIT), список shutdown‑хуков с приоритетами, рекавери паник.
  • Лидер‑элекция (Redis): надёжный цикл захвата/продления блокировки, уведомления о потере/получении лидерства.
  • Планировщик задач: периодические job’ы c rate‑лимитом, дедлайнами и двумя режимами остановки (немедленная/мягкая).
  • Барьер готовности: переключение ready/not‑ready по сигналам, безопасный жизненный цикл.
  • PostgreSQL (pgxpool): обёртка с явной настройкой Min/MaxConns, TTL/idle, health‑check, application_name.
  • ClickHouse: подключение с LZ4, политика NeedReconnect/NeedWait по ошибкам, безопасный reconnect.
  • HTTP (chi): мидлвары для логов, X‑Correlation‑ID, recover; аккуратный graceful shutdown.
  • gRPC: сервер + interceptors (panic → Internal, лимит размера ответа, таймауты), reflection по флагу.
  • Логирование (zap): унифицированные WriteInfoLog/WriteWarnLog/WriteErrorLog/WriteFatalLog.

Быстрый старт

Ниже — минимальный каркас сервиса на базе application, server, scheduler и watchdog.

examples/cmd/run/main.go

Лицензия

См. файл LICENSE в репозитории.

Directories

Path Synopsis
database
examples
cmd/chi command
cmd/run command

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL