diff --git a/cmd/antelope-api-healtcheck/main.go b/cmd/antelope-api-healtcheck/main.go index ac6952f..6ec0f27 100644 --- a/cmd/antelope-api-healtcheck/main.go +++ b/cmd/antelope-api-healtcheck/main.go @@ -181,7 +181,7 @@ func main() { } // Create server - srv = server.New(argv_listen_addr(), time.Second*10) + srv = server.New(argv_listen_addr(), server.WithTick(time.Second*10)) // Run signal event loop in its own goroutine go signalEventLoop() diff --git a/internal/server/server.go b/internal/server/server.go index eddd209..8cb1490 100644 --- a/internal/server/server.go +++ b/internal/server/server.go @@ -28,10 +28,23 @@ type Server struct { tick_interval time.Duration } -func New(addr string, tick_interval time.Duration) *Server { - return &Server{ - addr: fmt.Sprintf("tcp://%s", addr), - tick_interval: tick_interval, +type Option func(*Server) + +func New(addr string, options ...Option) *Server { + s := &Server{ + addr: fmt.Sprintf("tcp://%s", addr), + } + + for _, opt := range options { + opt(s) + } + + return s +} + +func WithTick(interval time.Duration) Option { + return func(s *Server) { + s.tick_interval = interval } }