Fix event error handler retrying infinitely
This commit is contained in:
parent
d7f3c653f9
commit
6c3488b8aa
1 changed files with 27 additions and 10 deletions
|
@ -49,16 +49,6 @@ func InitEvents() (err error) {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
router.AddMiddleware(
|
|
||||||
middleware.Retry{
|
|
||||||
MaxRetries: 5,
|
|
||||||
InitialInterval: time.Millisecond * 100,
|
|
||||||
Logger: logger,
|
|
||||||
Multiplier: 2,
|
|
||||||
}.Middleware,
|
|
||||||
middleware.Recoverer,
|
|
||||||
)
|
|
||||||
|
|
||||||
metricsBuilder := metrics.NewPrometheusMetricsBuilder(vmetrics.GetRegistry(), "", "")
|
metricsBuilder := metrics.NewPrometheusMetricsBuilder(vmetrics.GetRegistry(), "", "")
|
||||||
metricsBuilder.AddPrometheusRouterMetrics(router)
|
metricsBuilder.AddPrometheusRouterMetrics(router)
|
||||||
|
|
||||||
|
@ -69,6 +59,33 @@ func InitEvents() (err error) {
|
||||||
logger,
|
logger,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
poison, err := middleware.PoisonQueue(pubsub, "poison")
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
router.AddNoPublisherHandler("poison.logger", "poison", pubsub, func(msg *message.Message) error {
|
||||||
|
meta := ""
|
||||||
|
for s, m := range msg.Metadata {
|
||||||
|
meta += s + "=" + m + ", "
|
||||||
|
}
|
||||||
|
log.Errorf("Error while handling message %s, %s payload=%s", msg.UUID, meta, string(msg.Payload))
|
||||||
|
return nil
|
||||||
|
})
|
||||||
|
|
||||||
|
router.AddMiddleware(
|
||||||
|
poison,
|
||||||
|
middleware.Retry{
|
||||||
|
MaxRetries: 5,
|
||||||
|
InitialInterval: time.Millisecond * 100,
|
||||||
|
MaxInterval: time.Hour,
|
||||||
|
Multiplier: 2,
|
||||||
|
MaxElapsedTime: 0,
|
||||||
|
RandomizationFactor: 1,
|
||||||
|
Logger: logger,
|
||||||
|
}.Middleware,
|
||||||
|
middleware.Recoverer,
|
||||||
|
)
|
||||||
|
|
||||||
for topic, funcs := range listeners {
|
for topic, funcs := range listeners {
|
||||||
for _, handler := range funcs {
|
for _, handler := range funcs {
|
||||||
router.AddNoPublisherHandler(topic+"."+handler.Name(), topic, pubsub, handler.Handle)
|
router.AddNoPublisherHandler(topic+"."+handler.Name(), topic, pubsub, handler.Handle)
|
||||||
|
|
Loading…
Reference in a new issue