Use pool config.
This commit is contained in:
10
pool.go
10
pool.go
@@ -62,7 +62,7 @@ type pool struct {
|
|||||||
errors chan error
|
errors chan error
|
||||||
done chan struct{}
|
done chan struct{}
|
||||||
|
|
||||||
config *ConnectionConfig
|
config *PoolConfig
|
||||||
logger *slog.Logger
|
logger *slog.Logger
|
||||||
|
|
||||||
mu sync.RWMutex
|
mu sync.RWMutex
|
||||||
@@ -131,12 +131,12 @@ type OutboundPool struct {
|
|||||||
dialer Dialer
|
dialer Dialer
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewOutboundPool(config *ConnectionConfig, logger *slog.Logger) (*OutboundPool, error) {
|
func NewOutboundPool(config *PoolConfig, logger *slog.Logger) (*OutboundPool, error) {
|
||||||
if config == nil {
|
if config == nil {
|
||||||
config = GetDefaultConnectionConfig()
|
config = GetDefaultPoolConfig()
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := validateConnectionConfig(config); err != nil {
|
if err := validatePoolConfig(config); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -200,7 +200,7 @@ func (p *OutboundPool) Connect(url string) error {
|
|||||||
if p.logger != nil {
|
if p.logger != nil {
|
||||||
logger = p.logger.With("url", url)
|
logger = p.logger.With("url", url)
|
||||||
}
|
}
|
||||||
conn, err := NewConnection(url, p.config, logger)
|
conn, err := NewConnection(url, p.config.ConnectionConfig, logger)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|||||||
16
pool_test.go
16
pool_test.go
@@ -68,13 +68,15 @@ func TestPoolConnect(t *testing.T) {
|
|||||||
})
|
})
|
||||||
|
|
||||||
t.Run("fails to add connection", func(t *testing.T) {
|
t.Run("fails to add connection", func(t *testing.T) {
|
||||||
pool, err := NewOutboundPool(&ConnectionConfig{
|
pool, err := NewOutboundPool(
|
||||||
Retry: &RetryConfig{
|
&PoolConfig{
|
||||||
MaxRetries: 1,
|
ConnectionConfig: &ConnectionConfig{
|
||||||
InitialDelay: 1 * time.Millisecond,
|
Retry: &RetryConfig{
|
||||||
MaxDelay: 5 * time.Millisecond,
|
MaxRetries: 1,
|
||||||
},
|
InitialDelay: 1 * time.Millisecond,
|
||||||
}, nil)
|
MaxDelay: 5 * time.Millisecond,
|
||||||
|
}},
|
||||||
|
}, nil)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
pool.dialer = &MockDialer{
|
pool.dialer = &MockDialer{
|
||||||
DialFunc: func(string, http.Header) (Socket, *http.Response, error) {
|
DialFunc: func(string, http.Header) (Socket, *http.Response, error) {
|
||||||
|
|||||||
Reference in New Issue
Block a user