Develop #3
|
@ -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 ...
|
||||||
|
|
|
@ -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))
|
||||||
|
|
|
@ -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 ...
|
||||||
|
|
Loading…
Reference in New Issue