-
Notifications
You must be signed in to change notification settings - Fork 0
/
eventrcvr.go
73 lines (59 loc) · 1.73 KB
/
eventrcvr.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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
// Copyright (C) 2022, Chain4Travel AG. All rights reserved.
//
// This file is a derived work, based on ava-labs code whose
// original notices appear below.
//
// It is distributed under the same license conditions as the
// original code from which it is derived.
//
// Much love to the original authors for their work.
// **********************************************************
// (c) 2021, Ava Labs, Inc. All rights reserved.
// See the file LICENSE for licensing terms.
package utils
import (
"fmt"
"go.uber.org/zap"
"github.com/lasthyphen/dijetsnodego/utils/logging"
"github.com/gocraft/dbr/v2"
"github.com/palantir/stacktrace"
)
type EventRcvr struct {
logger logging.Logger
}
func (e *EventRcvr) NewJob(s string) dbr.EventReceiver {
return &event{name: s, logger: e.logger}
}
func (e *EventRcvr) SetLog(logger logging.Logger) {
e.logger = logger
}
type event struct {
name string
eventName string
logger logging.Logger
}
func (e *event) Event(eventName string) {
e.eventName = eventName
}
func (e *event) EventKv(eventName string, kvs map[string]string) {
e.eventName = eventName
}
func (e *event) EventErr(eventName string, err error) error {
return e.EventErrKv(eventName, err, nil)
}
func (e *event) EventErrKv(eventName string, err error, kvs map[string]string) error {
if ErrIsDuplicateEntryError(err) || ErrIsLockError(err) {
return err
}
e.eventName = eventName
e.logger.Warn("event error",
zap.String("name", e.name),
zap.String("eventName", e.eventName),
zap.Error(err),
)
return stacktrace.Propagate(err, fmt.Sprintf("%s %s", e.name, e.eventName))
}
func (e *event) Timing(eventName string, nanoseconds int64) {
}
func (e *event) TimingKv(eventName string, nanoseconds int64, kvs map[string]string) {
}