-
Notifications
You must be signed in to change notification settings - Fork 2
/
hystrix.go
46 lines (42 loc) · 1.15 KB
/
hystrix.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
package hystrix
import (
"context"
"github.com/americanas-go/config"
"github.com/americanas-go/grapper"
"github.com/americanas-go/grapper/middleware/contrib/afex/hystrix-go.v0"
h "github.com/americanas-go/ignite/afex/hystrix-go.v0"
"github.com/americanas-go/log"
)
func NewAnyError[R any](ctx context.Context, name string) grapper.AnyErrorMiddleware[R] {
ConfigAdd(name)
config.Load()
if o, _ := NewOptions(name); !o.Enabled {
return nil
}
if err := h.ConfigureCommand(name); err != nil {
log.Error(err.Error())
}
return hystrix.NewAnyErrorMiddleware[R](ctx, name)
}
func NewAny[R any](ctx context.Context, name string) grapper.AnyMiddleware[R] {
ConfigAdd(name)
config.Load()
if o, _ := NewOptions(name); !o.Enabled {
return nil
}
if err := h.ConfigureCommand(name); err != nil {
log.Error(err.Error())
}
return hystrix.NewAnyMiddleware[R](ctx, name)
}
func NewError(ctx context.Context, name string) grapper.ErrorMiddleware {
ConfigAdd(name)
config.Load()
if o, _ := NewOptions(name); !o.Enabled {
return nil
}
if err := h.ConfigureCommand(name); err != nil {
log.Error(err.Error())
}
return hystrix.NewErrorMiddleware(ctx, name)
}