Documentation
¶
Index ¶
- func SetDefaultManager(manager *Manager)
- func WithHealthCheck(parent context.Context) (context.Context, context.CancelFunc)
- func WithRaftProposal(parent context.Context) (context.Context, context.CancelFunc)
- func WithRequest(parent context.Context) (context.Context, context.CancelFunc)
- type Config
- type Manager
- func (m *Manager) GetConfig() *Config
- func (m *Manager) UpdateConfig(config *Config) error
- func (m *Manager) WithConnection(parent context.Context) (context.Context, context.CancelFunc)
- func (m *Manager) WithCustom(parent context.Context, duration time.Duration) (context.Context, context.CancelFunc)
- func (m *Manager) WithGracefulShutdown(parent context.Context) (context.Context, context.CancelFunc)
- func (m *Manager) WithHealthCheck(parent context.Context) (context.Context, context.CancelFunc)
- func (m *Manager) WithMetadataSync(parent context.Context) (context.Context, context.CancelFunc)
- func (m *Manager) WithMetadataUpdate(parent context.Context) (context.Context, context.CancelFunc)
- func (m *Manager) WithRaftElection(parent context.Context) (context.Context, context.CancelFunc)
- func (m *Manager) WithRaftProposal(parent context.Context) (context.Context, context.CancelFunc)
- func (m *Manager) WithReadinessCheck(parent context.Context) (context.Context, context.CancelFunc)
- func (m *Manager) WithRebalance(parent context.Context) (context.Context, context.CancelFunc)
- func (m *Manager) WithRequest(parent context.Context) (context.Context, context.CancelFunc)
- type Operation
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func SetDefaultManager ¶
func SetDefaultManager(manager *Manager)
SetDefaultManager sets the global default timeout manager
func WithHealthCheck ¶
WithHealthCheck creates a context with health check timeout using the default manager
func WithRaftProposal ¶
WithRaftProposal creates a context with raft proposal timeout using the default manager
func WithRequest ¶
WithRequest creates a context with request timeout using the default manager
Types ¶
type Config ¶
type Config struct {
// Consensus timeouts
RaftProposal time.Duration `json:"raft_proposal"`
RaftElection time.Duration `json:"raft_election"`
RaftHeartbeat time.Duration `json:"raft_heartbeat"`
RaftSnapshot time.Duration `json:"raft_snapshot"`
// Metadata timeouts
MetadataUpdate time.Duration `json:"metadata_update"`
MetadataSync time.Duration `json:"metadata_sync"`
// Cluster coordination timeouts
RebalanceTimeout time.Duration `json:"rebalance_timeout"`
BrokerHeartbeat time.Duration `json:"broker_heartbeat"`
LeaderElection time.Duration `json:"leader_election"`
// Health check timeouts
HealthCheck time.Duration `json:"health_check"`
ReadinessCheck time.Duration `json:"readiness_check"`
// Network timeouts
ConnectionTimeout time.Duration `json:"connection_timeout"`
RequestTimeout time.Duration `json:"request_timeout"`
IdleTimeout time.Duration `json:"idle_timeout"`
// Shutdown timeouts
GracefulShutdown time.Duration `json:"graceful_shutdown"`
ForceShutdown time.Duration `json:"force_shutdown"`
}
Config holds timeout configuration for various operations
func DefaultConfig ¶
func DefaultConfig() *Config
DefaultConfig returns default timeout configuration
func ProductionConfig ¶
func ProductionConfig() *Config
ProductionConfig returns production-tuned timeout configuration
func TestConfig ¶
func TestConfig() *Config
TestConfig returns test-friendly timeout configuration (shorter timeouts)
type Manager ¶
type Manager struct {
// contains filtered or unexported fields
}
Manager manages timeout contexts
Example ¶
manager, _ := NewManager(DefaultConfig()) // Create a context with raft proposal timeout ctx, cancel := manager.WithRaftProposal(context.Background()) defer cancel() // Use the context for an operation _ = ctx
func NewManager ¶
NewManager creates a new timeout manager
func (*Manager) UpdateConfig ¶
UpdateConfig updates the timeout configuration
func (*Manager) WithConnection ¶
WithConnection creates a context with connection timeout
func (*Manager) WithCustom ¶
func (m *Manager) WithCustom(parent context.Context, duration time.Duration) (context.Context, context.CancelFunc)
WithCustom creates a context with a custom timeout
func (*Manager) WithGracefulShutdown ¶
func (m *Manager) WithGracefulShutdown(parent context.Context) (context.Context, context.CancelFunc)
WithGracefulShutdown creates a context with graceful shutdown timeout
func (*Manager) WithHealthCheck ¶
WithHealthCheck creates a context with health check timeout
func (*Manager) WithMetadataSync ¶
WithMetadataSync creates a context with metadata sync timeout
func (*Manager) WithMetadataUpdate ¶
WithMetadataUpdate creates a context with metadata update timeout
func (*Manager) WithRaftElection ¶
WithRaftElection creates a context with raft election timeout
func (*Manager) WithRaftProposal ¶
WithRaftProposal creates a context with raft proposal timeout
func (*Manager) WithReadinessCheck ¶
WithReadinessCheck creates a context with readiness check timeout
func (*Manager) WithRebalance ¶
WithRebalance creates a context with rebalance timeout
func (*Manager) WithRequest ¶
WithRequest creates a context with request timeout
type Operation ¶
type Operation struct {
// contains filtered or unexported fields
}
Operation represents a timeout-aware operation
Example ¶
op := NewOperation("database.query", 5*time.Second)
err := op.Execute(context.Background(), func(ctx context.Context) error {
// Perform database query
return nil
})
if err != nil {
// Handle error
}
func NewOperation ¶
NewOperation creates a new operation with timeout
func (*Operation) ExecuteWithRetry ¶
func (o *Operation) ExecuteWithRetry(parent context.Context, maxRetries int, fn func(ctx context.Context) error) error
ExecuteWithRetry executes the operation with retries and timeout
Example ¶
op := NewOperation("api.request", 3*time.Second)
err := op.ExecuteWithRetry(context.Background(), 3, func(ctx context.Context) error {
// Make API request
return nil
})
if err != nil {
// All retries failed
}