forked from open-falcon/falcon-plus
-
Notifications
You must be signed in to change notification settings - Fork 0
/
msg_writer.go
91 lines (73 loc) · 1.67 KB
/
msg_writer.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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
package redi
import (
"encoding/json"
log "github.com/Sirupsen/logrus"
"strings"
"github.com/open-falcon/falcon-plus/modules/alarm/g"
"github.com/open-falcon/falcon-plus/modules/alarm/model"
)
func lpush(queue, message string) {
rc := g.RedisConnPool.Get()
defer rc.Close()
_, err := rc.Do("LPUSH", queue, message)
if err != nil {
log.Error("LPUSH redis", queue, "fail:", err, "message:", message)
}
}
func WriteSmsModel(sms *model.Sms) {
if sms == nil {
return
}
bs, err := json.Marshal(sms)
if err != nil {
log.Error(err)
return
}
log.Debugf("write sms to queue, sms:%v, queue:%s", sms, SMS_QUEUE_NAME)
lpush(SMS_QUEUE_NAME, string(bs))
}
func WriteIMModel(im *model.IM) {
if im == nil {
return
}
bs, err := json.Marshal(im)
if err != nil {
log.Error(err)
return
}
log.Debugf("write im to queue, im:%v, queue:%s", im, IM_QUEUE_NAME)
lpush(IM_QUEUE_NAME, string(bs))
}
func WriteMailModel(mail *model.Mail) {
if mail == nil {
return
}
bs, err := json.Marshal(mail)
if err != nil {
log.Error(err)
return
}
log.Debugf("write mail to queue, mail:%v, queue:%s", mail, MAIL_QUEUE_NAME)
lpush(MAIL_QUEUE_NAME, string(bs))
}
func WriteSms(tos []string, content string) {
if len(tos) == 0 {
return
}
sms := &model.Sms{Tos: strings.Join(tos, ","), Content: content}
WriteSmsModel(sms)
}
func WriteIM(tos []string, content string) {
if len(tos) == 0 {
return
}
im := &model.IM{Tos: strings.Join(tos, ","), Content: content}
WriteIMModel(im)
}
func WriteMail(tos []string, subject, content string) {
if len(tos) == 0 {
return
}
mail := &model.Mail{Tos: strings.Join(tos, ","), Subject: subject, Content: content}
WriteMailModel(mail)
}