/
sender.go
112 lines (91 loc) · 2.02 KB
/
sender.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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
package redis
import (
"encoding/json"
"github.com/Cepave/open-falcon-backend/modules/alarm/g"
"github.com/Cepave/open-falcon-backend/modules/sender/model"
log "github.com/sirupsen/logrus"
"strings"
)
func LPUSH(queue, message string) {
rc := g.RedisConnPool.Get()
defer rc.Close()
_, err := rc.Do("LPUSH", queue, message)
if err != nil {
log.Println("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.Println(err)
return
}
LPUSH(g.Config().Queue.Sms, string(bs))
}
func WriteMailModel(mail *model.Mail) {
if mail == nil {
return
}
bs, err := json.Marshal(mail)
if err != nil {
log.Println(err)
return
}
LPUSH(g.Config().Queue.Mail, string(bs))
}
func WriteQQModel(qq *model.QQ) {
if qq == nil {
return
}
bs, err := json.Marshal(qq)
if err != nil {
log.Println(err)
return
}
LPUSH(g.Config().Queue.QQ, string(bs))
}
func WriteServerchanModel(serverchan *model.Serverchan) {
if serverchan == nil {
return
}
bs, err := json.Marshal(serverchan)
if err != nil {
log.Println(err)
return
}
LPUSH(g.Config().Queue.Serverchan, string(bs))
}
func WriteSms(tos []string, content string) {
if len(tos) == 0 {
return
}
if len(strings.Join(tos, ",")) == 0 {
return
}
sms := &model.Sms{Tos: strings.Join(tos, ","), Content: content}
WriteSmsModel(sms)
}
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)
}
func WriteQQ(tos []string, subject, content string) {
if len(tos) == 0 {
return
}
qq := &model.QQ{Tos: strings.Join(tos, ","), Subject: subject, Content: content}
WriteQQModel(qq)
}
func WriteServerchan(tos []string, subject, content string) {
if len(tos) == 0 {
return
}
serverchan := &model.Serverchan{Tos: strings.Join(tos, ","), Subject: subject, Content: content}
WriteServerchanModel(serverchan)
}