Documentation
¶
Index ¶
- Constants
- type BatchConfig
- type BatchProcessor
- type BatchRequest
- type Batcher
- type CircuitBreaker
- type CircuitBreakerConfig
- type CircuitBreakerGroup
- type CircuitBreakerMetrics
- type CircuitState
- type Clock
- type ConcurrentError
- type DefaultBatchProcessor
- type FakeClock
- type MultiServerRateLimiter
- func (m *MultiServerRateLimiter) Allow(serverName string) bool
- func (m *MultiServerRateLimiter) Close()
- func (m *MultiServerRateLimiter) GetLimiter(serverName string) *RateLimiter
- func (m *MultiServerRateLimiter) GetStats(serverName string) RateLimiterStats
- func (m *MultiServerRateLimiter) Reset(serverName string)
- func (m *MultiServerRateLimiter) ResetAll()
- type PoolConfig
- type PoolStats
- type QueueManager
- func (qm *QueueManager) ClearQueue(serverName string)
- func (qm *QueueManager) Enqueue(serverName string, req Request, resultCh chan *Response, errorCh chan error) error
- func (qm *QueueManager) GetOrCreateQueue(serverName string) *RequestQueue
- func (qm *QueueManager) GetOverflowCount() int64
- func (qm *QueueManager) GetQueueSize(serverName string) int
- type QueuedRequest
- type RateLimiter
- type RateLimiterConfig
- type RateLimiterStats
- type RealClock
- type Request
- type RequestHandler
- type RequestQueue
- type Response
- type ServerHandle
- type ServerState
- type StdioPool
- func (p *StdioPool) Close() error
- func (p *StdioPool) GetPoolStats() PoolStats
- func (p *StdioPool) GetServerStats(serverName string) (*ServerHandle, error)
- func (p *StdioPool) RegisterServer(name string, maxConcurrent int)
- func (p *StdioPool) SendRequest(ctx context.Context, serverName string, req *Request) (*Response, error)
- func (p *StdioPool) ServerCount() int
- type WorkerPool
- type WorkerPoolMetrics
Constants ¶
View Source
const ( ErrCodeInternalError = -32603 ErrCodeTimeout = -32001 ErrCodeCircuitOpen = -32002 ErrCodeRateLimited = -32003 )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BatchConfig ¶
type BatchProcessor ¶
type BatchRequest ¶
type Batcher ¶
type Batcher struct {
// contains filtered or unexported fields
}
func NewBatcher ¶
func NewBatcher(config BatchConfig, logger *slog.Logger) *Batcher
func (*Batcher) AddRequest ¶
func (*Batcher) GetPendingCount ¶
type CircuitBreaker ¶
type CircuitBreaker struct {
// contains filtered or unexported fields
}
func NewCircuitBreaker ¶
func (*CircuitBreaker) Allow ¶
func (cb *CircuitBreaker) Allow() bool
func (*CircuitBreaker) GetMetrics ¶
func (cb *CircuitBreaker) GetMetrics() CircuitBreakerMetrics
func (*CircuitBreaker) RecordFailure ¶
func (cb *CircuitBreaker) RecordFailure()
func (*CircuitBreaker) RecordSuccess ¶
func (cb *CircuitBreaker) RecordSuccess()
func (*CircuitBreaker) Reset ¶
func (cb *CircuitBreaker) Reset()
func (*CircuitBreaker) State ¶
func (cb *CircuitBreaker) State() CircuitState
type CircuitBreakerConfig ¶
type CircuitBreakerGroup ¶
type CircuitBreakerGroup struct {
// contains filtered or unexported fields
}
func NewCircuitBreakerGroup ¶
func NewCircuitBreakerGroup() *CircuitBreakerGroup
func (*CircuitBreakerGroup) Get ¶
func (g *CircuitBreakerGroup) Get(name string) *CircuitBreaker
func (*CircuitBreakerGroup) Register ¶
func (g *CircuitBreakerGroup) Register(name string, cb *CircuitBreaker)
func (*CircuitBreakerGroup) ResetAll ¶
func (g *CircuitBreakerGroup) ResetAll()
type CircuitBreakerMetrics ¶
type CircuitState ¶
type CircuitState int
const ( StateClosed CircuitState = iota StateOpen StateHalfOpen )
func (CircuitState) String ¶
func (s CircuitState) String() string
type ConcurrentError ¶
type ConcurrentError struct {
Code int `json:"code"`
Message string `json:"message"`
Data json.RawMessage `json:"data,omitempty"`
}
func (*ConcurrentError) Error ¶
func (e *ConcurrentError) Error() string
type DefaultBatchProcessor ¶
type DefaultBatchProcessor struct {
// contains filtered or unexported fields
}
func NewDefaultBatchProcessor ¶
func NewDefaultBatchProcessor(logger *slog.Logger) *DefaultBatchProcessor
func (*DefaultBatchProcessor) ProcessBatch ¶
type FakeClock ¶ added in v0.6.0
type FakeClock struct {
// contains filtered or unexported fields
}
func NewFakeClock ¶ added in v0.6.0
type MultiServerRateLimiter ¶
type MultiServerRateLimiter struct {
// contains filtered or unexported fields
}
func NewMultiServerRateLimiter ¶
func NewMultiServerRateLimiter(config RateLimiterConfig) *MultiServerRateLimiter
func (*MultiServerRateLimiter) Allow ¶
func (m *MultiServerRateLimiter) Allow(serverName string) bool
func (*MultiServerRateLimiter) Close ¶ added in v0.6.0
func (m *MultiServerRateLimiter) Close()
func (*MultiServerRateLimiter) GetLimiter ¶
func (m *MultiServerRateLimiter) GetLimiter(serverName string) *RateLimiter
func (*MultiServerRateLimiter) GetStats ¶
func (m *MultiServerRateLimiter) GetStats(serverName string) RateLimiterStats
func (*MultiServerRateLimiter) Reset ¶
func (m *MultiServerRateLimiter) Reset(serverName string)
func (*MultiServerRateLimiter) ResetAll ¶
func (m *MultiServerRateLimiter) ResetAll()
type PoolConfig ¶
type QueueManager ¶
type QueueManager struct {
// contains filtered or unexported fields
}
func NewQueueManager ¶
func NewQueueManager(maxSize int, timeout time.Duration) *QueueManager
func (*QueueManager) ClearQueue ¶
func (qm *QueueManager) ClearQueue(serverName string)
func (*QueueManager) GetOrCreateQueue ¶
func (qm *QueueManager) GetOrCreateQueue(serverName string) *RequestQueue
func (*QueueManager) GetOverflowCount ¶
func (qm *QueueManager) GetOverflowCount() int64
func (*QueueManager) GetQueueSize ¶
func (qm *QueueManager) GetQueueSize(serverName string) int
type QueuedRequest ¶
type RateLimiter ¶
type RateLimiter struct {
// contains filtered or unexported fields
}
func NewRateLimiter ¶
func NewRateLimiter(max int, window time.Duration) *RateLimiter
func (*RateLimiter) Allow ¶
func (rl *RateLimiter) Allow() bool
func (*RateLimiter) Close ¶ added in v0.6.0
func (rl *RateLimiter) Close()
func (*RateLimiter) GetBlockedCount ¶
func (rl *RateLimiter) GetBlockedCount() int64
func (*RateLimiter) GetUsage ¶
func (rl *RateLimiter) GetUsage() (current int, max int)
func (*RateLimiter) Reset ¶
func (rl *RateLimiter) Reset()
type RateLimiterConfig ¶
type RateLimiterStats ¶
type RequestHandler ¶
type RequestQueue ¶
type RequestQueue struct {
// contains filtered or unexported fields
}
type Response ¶
type Response struct {
Result json.RawMessage `json:"result,omitempty"`
Error *ConcurrentError `json:"error,omitempty"`
ID interface{} `json:"id"`
}
type ServerHandle ¶
type ServerState ¶
type ServerState string
const ( StateIdle ServerState = "idle" StateRunning ServerState = "running" StateBusy ServerState = "busy" StateStopping ServerState = "stopping" StateStopped ServerState = "stopped" StateError ServerState = "error" )
type StdioPool ¶
type StdioPool struct {
// contains filtered or unexported fields
}
func NewStdioPool ¶
func NewStdioPool(config PoolConfig, logger *slog.Logger) *StdioPool
func (*StdioPool) GetPoolStats ¶
func (*StdioPool) GetServerStats ¶
func (p *StdioPool) GetServerStats(serverName string) (*ServerHandle, error)
func (*StdioPool) RegisterServer ¶
func (*StdioPool) SendRequest ¶
func (*StdioPool) ServerCount ¶
type WorkerPool ¶
type WorkerPool struct {
// contains filtered or unexported fields
}
func NewWorkerPool ¶
func NewWorkerPool(workers, queueSize int, logger *slog.Logger) *WorkerPool
func (*WorkerPool) GetActiveWorkers ¶
func (p *WorkerPool) GetActiveWorkers() int
func (*WorkerPool) GetQueueCapacity ¶
func (p *WorkerPool) GetQueueCapacity() int
func (*WorkerPool) Metrics ¶
func (p *WorkerPool) Metrics() WorkerPoolMetrics
func (*WorkerPool) QueueSize ¶
func (p *WorkerPool) QueueSize() int
func (*WorkerPool) Shutdown ¶
func (p *WorkerPool) Shutdown()
Click to show internal directories.
Click to hide internal directories.