Skip to content

Commit

Permalink
set timeouts as config
Browse files Browse the repository at this point in the history
  • Loading branch information
muraty authored and cenkalti committed Apr 15, 2021
1 parent 8c867e5 commit 6eba7fe
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 5 deletions.
6 changes: 6 additions & 0 deletions config.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,9 @@ var DefaultConfig = Config{
Host: "127.0.0.1",
Port: 34006,
ShutdownTimeout: 10 * time.Second,
IdleTimeout: 60 * time.Second,
ReadTimeout: 10 * time.Second,
WriteTimeout: 10 * time.Second,
},
Endpoint: endpointConfig{
BaseURL: "http://127.0.0.1:5000/",
Expand Down Expand Up @@ -89,6 +92,9 @@ type listenConfig struct {
Host string
Port int
ShutdownTimeout time.Duration
IdleTimeout time.Duration
ReadTimeout time.Duration
WriteTimeout time.Duration
}

func (c listenConfig) Addr() string {
Expand Down
2 changes: 1 addition & 1 deletion dalga.go
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ func New(config Config) (*Dalga, error) {
}
s := scheduler.New(t, i.ID(), config.Endpoint.BaseURL, config.Endpoint.Timeout, r, config.Jobs.RandomizationFactor, config.Jobs.ScanFrequency, config.Jobs.MaxRunning)
j := jobmanager.New(t, s)
srv := server.New(j, t, i.ID(), lis, config.Listen.ShutdownTimeout)
srv := server.New(j, t, i.ID(), lis, config.Listen.ShutdownTimeout, config.Listen.IdleTimeout, config.Listen.ReadTimeout, config.Listen.WriteTimeout)
return &Dalga{
config: config,
db: db,
Expand Down
14 changes: 10 additions & 4 deletions internal/server/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,9 @@ import (

type Server struct {
shutdownTimeout time.Duration
idleTimeout time.Duration
readTimeout time.Duration
writeTimeout time.Duration
jobs *jobmanager.JobManager
table *table.Table
instanceID uint32
Expand All @@ -26,9 +29,12 @@ type Server struct {
done chan struct{}
}

func New(j *jobmanager.JobManager, t *table.Table, instanceID uint32, l net.Listener, shutdownTimeout time.Duration) *Server {
func New(j *jobmanager.JobManager, t *table.Table, instanceID uint32, l net.Listener, shutdownTimeout, idleTimeout, readTimeout, writeTimeout time.Duration) *Server {
s := &Server{
shutdownTimeout: shutdownTimeout,
idleTimeout: idleTimeout,
readTimeout: readTimeout,
writeTimeout: writeTimeout,
jobs: j,
table: t,
instanceID: instanceID,
Expand Down Expand Up @@ -72,9 +78,9 @@ func (s *Server) createServer() http.Server {
m.Get("/status", http.HandlerFunc(s.handleStatus))
return http.Server{
Handler: m,
ReadTimeout: 10 * time.Second,
WriteTimeout: 10 * time.Second,
IdleTimeout: 10 * time.Second,
ReadTimeout: s.readTimeout,
WriteTimeout: s.writeTimeout,
IdleTimeout: s.idleTimeout,
}
}

Expand Down

0 comments on commit 6eba7fe

Please sign in to comment.