diff --git a/config.go b/config.go index 295f751..898b767 100644 --- a/config.go +++ b/config.go @@ -1,5 +1,7 @@ package natsio +import "time" + // Config ... type Config struct { // Connect url @@ -13,6 +15,9 @@ type Config struct { // TLS config TLS *TLSConfig + + // RequestTimeout + RequestTimeout time.Duration } // TLSConfig ... diff --git a/natsio.go b/natsio.go index 33bdbb2..5ccc45d 100644 --- a/natsio.go +++ b/natsio.go @@ -3,7 +3,6 @@ package natsio import ( "errors" "fmt" - "github.com/logrusorgru/aurora" "github.com/nats-io/nats.go" ) @@ -11,6 +10,7 @@ import ( // Server ... type Server struct { instance *nats.Conn + Config Config } // JetStream ... @@ -53,6 +53,7 @@ func Connect(cfg Config) error { // Set client natsServer.instance = nc + natsServer.Config = cfg // Create jet stream context js, err := nc.JetStream(nats.PublishAsyncMaxPending(256)) diff --git a/server_reqres.go b/server_reqres.go index e099a41..cb50938 100644 --- a/server_reqres.go +++ b/server_reqres.go @@ -13,7 +13,11 @@ const requestTimeout = 10 * time.Second // Request ... func (sv Server) Request(subject string, payload []byte) (*nats.Msg, error) { - return sv.instance.Request(subject, payload, requestTimeout) + timeout := requestTimeout + if sv.Config.RequestTimeout > 0 { + timeout = sv.Config.RequestTimeout + } + return sv.instance.Request(subject, payload, timeout) } // Reply ...