File tree Expand file tree Collapse file tree 1 file changed +12
-1
lines changed
Expand file tree Collapse file tree 1 file changed +12
-1
lines changed Original file line number Diff line number Diff line change 11package pubsubrouter
22
33import (
4+ "runtime/debug"
45 "sync"
56
7+ "github.com/google/martian/log"
68 "github.com/sofyan48/pubsub-router/pkg/client"
79)
810
@@ -28,10 +30,19 @@ func (r *Router) Handle(routes string, h Handler) *Router {
2830
2931func (r * Router ) HandleMessage (m * Message ) error {
3032 path := m .Payload .Attributes [client .MessageAttributeNameRoute ]
33+ defer func () {
34+ if err := recover (); err != nil {
35+ log .Errorf ("panic recovered: %v | stack : %v" , err , string (debug .Stack ()))
36+ }
37+ }()
3138 h , okRoute := r .handlers [path ]
3239 if okRoute {
40+ err := h .HandleMessage (m )
41+ if err != nil {
42+ m .Payload .Nack ()
43+ return err
44+ }
3345 m .Payload .Ack ()
34- return h .HandleMessage (m )
3546 }
3647 // if you need reporting please contrib this error handling
3748 // return errors.New("Route Not Any Match")
You can’t perform that action at this time.
0 commit comments