-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathexample_test.go
38 lines (32 loc) · 1.13 KB
/
example_test.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
package oplog_test
import (
"log"
"github.com/gnokoheat/oplog"
)
func ExampleOptions_Tail() {
var o = &oplog.Options{
// (e.g. mongodb://username:password@127.0.0.1:27017,127.0.0.1:27018/local?replicaSet=rs01&authSource=admin)
Addrs: []string{"127.0.0.1:27017", "127.0.0.1:27018"}, // replicaset host and port
Username: "username", // admin db username
Password: "password", // admin db user password
ReplicaSet: "rs01", // replicaset name
DB: "myDB", // tailing target db
Collection: "myCollection", // tailing target collection
Events: []string{"insert", "update", "delete"}, // tailing target method
}
l := make(chan *[]oplog.Log) // Oplog Channel
e := make(chan error) // Error Channel
// Oplog tailing start !
go o.Tail(l, e)
for {
select {
case err := <-e:
log.Println("[Error] ", err)
return
case op := <-l:
// input oplog handling code
log.Println("[Result] ", op)
break
}
}
}