mirror of
https://github.com/hanzoai/tasks.git
synced 2026-11-03 03:56:04 +00:00
Full module path rebrand from Temporal to Hanzo Tasks: - go.mod module: github.com/hanzoai/tasks - All internal Go imports updated (1906 files) - cmd/server renamed to cmd/tasksd - Binary name: tasksd (was temporal-server) - Docker images: hanzoai/tasks (was temporalio/server) - README rewritten with Hanzo Tasks branding - LLM.md created with integration notes - Makefile, goreleaser, CI workflows updated - go.temporal.io/sdk and go.temporal.io/api imports preserved (separate repos) Fork of Temporal.io (MIT license).
23 lines
566 B
Go
23 lines
566 B
Go
package circuitbreakerpool
|
|
|
|
import (
|
|
"github.com/hanzoai/tasks/common/circuitbreaker"
|
|
"github.com/hanzoai/tasks/common/collection"
|
|
)
|
|
|
|
type CircuitBreakerPool[K comparable] struct {
|
|
m *collection.OnceMap[K, circuitbreaker.TwoStepCircuitBreaker]
|
|
}
|
|
|
|
func (p *CircuitBreakerPool[K]) Get(key K) circuitbreaker.TwoStepCircuitBreaker {
|
|
return p.m.Get(key)
|
|
}
|
|
|
|
func NewCircuitBreakerPool[K comparable](
|
|
constructor func(key K) circuitbreaker.TwoStepCircuitBreaker,
|
|
) *CircuitBreakerPool[K] {
|
|
return &CircuitBreakerPool[K]{
|
|
m: collection.NewOnceMap(constructor),
|
|
}
|
|
}
|