Versions in this module Expand all Collapse all v0 v0.1.3 Apr 3, 2024 Changes in this version + const EvaluationInterval + const MaxConcurrency + const MinConcurrency + func Min(a, b int) int + type ConcurrencyHandler struct + AcquisitionTimes []time.Duration + PerfMetrics *PerformanceMetrics + func NewConcurrencyHandler(limit int, logger logger.Logger, perfMetrics *PerformanceMetrics) *ConcurrencyHandler + func (ch *ConcurrencyHandler) Acquire(ctx context.Context) (uuid.UUID, error) + func (ch *ConcurrencyHandler) AcquireConcurrencyToken(ctx context.Context) (context.Context, error) + func (ch *ConcurrencyHandler) AdjustConcurrencyBasedOnMetrics() + func (ch *ConcurrencyHandler) AdjustConcurrencyLimit(newLimit int) + func (ch *ConcurrencyHandler) AverageAcquisitionTime() time.Duration + func (ch *ConcurrencyHandler) EvaluateMetricsAndAdjustConcurrency() + func (ch *ConcurrencyHandler) GetAverageAcquisitionTime() time.Duration + func (ch *ConcurrencyHandler) GetHistoricalAverageAcquisitionTime() time.Duration + func (ch *ConcurrencyHandler) GetPerformanceMetrics() *PerformanceMetrics + func (ch *ConcurrencyHandler) HistoricalAverageAcquisitionTime() time.Duration + func (ch *ConcurrencyHandler) Release(requestID uuid.UUID) + func (ch *ConcurrencyHandler) StartConcurrencyAdjustment() + func (ch *ConcurrencyHandler) StartMetricEvaluation() + func (ch *ConcurrencyHandler) UpdatePerformanceMetrics(duration time.Duration) + type PerformanceMetrics struct + TokenWaitTime time.Duration + TotalRateLimitErrors int64 + TotalRequests int64 + TotalResponseTime time.Duration + TotalRetries int64