client

package
v1.1.0 Latest Latest
Warning

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

Go to latest
Published: Apr 28, 2026 License: Apache-2.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() mq.Metrics

func (*Client) QueueSubscribeSync

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

func (*Client) WithMeter

func (c *Client) WithMeter(m mq.Metrics)

type Config

type Config struct {
	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:"-1"`
	ReconnectWait        time.Duration `env:"_RECONNECT_WAIT" envDefault:"1s"`
	RetryOnFailedConnect bool          `env:"_RETRY_ON_FAILED_CONNECT" envDefault:"true"`
	ConcurrentSizeVal    int           `env:"_CONCURRENT_SIZE" envDefault:"2"`
	MaxConcurrentSize    uint64        `env:"_MAX_CONCURRENT_SIZE" envDefault:"20"`
	ReadTimeoutVal       time.Duration `env:"_READ_TIMEOUT" envDefault:"30s"`
}

func NATSConfigFromEnv

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

func (*Config) ConcurrentSize

func (cfg *Config) ConcurrentSize() int

func (*Config) Options

func (cfg *Config) Options() ([]nats.Option, error)

func (*Config) ReadTimeout

func (cfg *Config) ReadTimeout() 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)

Jump to

Keyboard shortcuts

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