[Update] Config

This commit is contained in:
trunglt251292 2022-03-30 19:17:14 +07:00
parent 1e3bfd7392
commit 2a9897e137
3 changed files with 12 additions and 5 deletions

View File

@ -1,5 +1,7 @@
package natsio package natsio
import "time"
// Config ... // Config ...
type Config struct { type Config struct {
// Connect url // Connect url
@ -13,6 +15,9 @@ type Config struct {
// TLS config // TLS config
TLS *TLSConfig TLS *TLSConfig
// RequestTimeout
RequestTimeout time.Duration
} }
// TLSConfig ... // TLSConfig ...

View File

@ -3,8 +3,6 @@ package natsio
import ( import (
"errors" "errors"
"fmt" "fmt"
"time"
"github.com/logrusorgru/aurora" "github.com/logrusorgru/aurora"
"github.com/nats-io/nats.go" "github.com/nats-io/nats.go"
) )
@ -12,6 +10,7 @@ import (
// Server ... // Server ...
type Server struct { type Server struct {
instance *nats.Conn instance *nats.Conn
Config Config
} }
// JetStream ... // JetStream ...
@ -33,8 +32,6 @@ func Connect(cfg Config) error {
// Connect options // Connect options
opts := make([]nats.Option, 0) opts := make([]nats.Option, 0)
opts = append(opts, nats.Timeout(1*time.Minute))
// Has authentication // Has authentication
if cfg.User != "" { if cfg.User != "" {
opts = append(opts, nats.UserInfo(cfg.User, cfg.Password)) opts = append(opts, nats.UserInfo(cfg.User, cfg.Password))
@ -56,6 +53,7 @@ func Connect(cfg Config) error {
// Set client // Set client
natsServer.instance = nc natsServer.instance = nc
natsServer.Config = cfg
// Create jet stream context // Create jet stream context
js, err := nc.JetStream(nats.PublishAsyncMaxPending(256)) js, err := nc.JetStream(nats.PublishAsyncMaxPending(256))

View File

@ -13,7 +13,11 @@ const requestTimeout = 10 * time.Second
// Request ... // Request ...
func (sv Server) Request(subject string, payload []byte) (*nats.Msg, error) { 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 ... // Reply ...