client

package
v1.0.9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 5, 2025 License: GPL-3.0 Imports: 12 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DefaultEnvNATSPrefix = "NATS"

	DefaultTimeout = time.Millisecond * 100
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Client

type Client struct {
	// contains filtered or unexported fields
}

func Default

func Default(ctx context.Context, logger Logger, prefixes ...string) (*Client, error)

func NewClient

func NewClient(
	ctx context.Context,
	conn *nats.Conn,
	cfg *Config,
	logger Logger,
) (*Client, error)

func (*Client) Close

func (c *Client) Close() error

func (*Client) Config

func (c *Client) Config() *Config

func (*Client) Conn

func (c *Client) Conn() *nats.Conn

func (*Client) Context

func (c *Client) Context() context.Context

func (*Client) Logger

func (c *Client) Logger() Logger

func (*Client) Meter

func (c *Client) Meter() metric.Meter

func (*Client) QueueSubscribeSync

func (c *Client) QueueSubscribeSync(subject, queue string) (*nats.Subscription, error)

func (*Client) WithMeter

func (c *Client) WithMeter(m metric.Meter)

type Config

type Config struct {
	*nats.StreamConfig
	Addr                 string        `env:"_ADDR" envDefault:"nats://127.0.0.1:4222"`
	Username             string        `env:"_USERNAME" envDefault:""`
	Password             string        `env:"_PASSWORD" envDefault:""`
	Seed                 string        `env:"_SEED" envDefault:""`
	DrainTimeout         time.Duration `env:"_DRAIN_TIMEOUT" envDefault:"1s"`
	MaxReconnects        int           `env:"_MAX_RECONNECTS" envDefault:"10"`
	ReconnectWait        time.Duration `env:"_RECONNECT_WAIT" envDefault:"1s"`
	MaxAckPending        int           `env:"_MAX_ACK_PENDING" envDefault:"0"`
	RetryOnFailedConnect bool          `env:"_RETRY_ON_FAILED_CONNECT" envDefault:"true"`
	ManualAck            bool          `env:"_MANUAL_ACK" envDefault:"false"`
	ConcurrentSize       int           `env:"_CONCURRENT_SIZE" envDefault:"10"`
	MaxConcurrentSize    uint64        `env:"_MAX_CONCURRENT_SIZE" envDefault:"1024"`
	ReadTimeout          time.Duration `env:"_READ_TIMEOUT" envDefault:"500ms"`
	IdleTimeout          time.Duration `env:"_IDLE_TIMEOUT" envDefault:"5s"`
}

func GetNATSConnectionConfigFromEnv

func GetNATSConnectionConfigFromEnv(prefixes ...string) (*Config, error)

func (*Config) GetConcurrentSize

func (cfg *Config) GetConcurrentSize() int

func (*Config) GetOptions

func (cfg *Config) GetOptions() []nats.Option

func (*Config) GetReadTimeout

func (cfg *Config) GetReadTimeout() time.Duration

type Logger

type Logger interface {
	Error(msg string, args ...any)
	Info(msg string, args ...any)
	Debug(msg string, args ...any)
}

type StubLogger

type StubLogger struct{}

func (StubLogger) Debug

func (l StubLogger) Debug(_ string, _ ...any)

func (StubLogger) Error

func (l StubLogger) Error(_ string, _ ...any)

func (StubLogger) Info

func (l StubLogger) Info(_ string, _ ...any)

Directories

Path Synopsis
Package mock is a generated GoMock package.
Package mock is a generated GoMock package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL