main
 1package main
 2
 3import (
 4	"c0/gatekeeper/pkg/x"
 5	"encoding/json"
 6	"fmt"
 7	"time"
 8
 9	"github.com/gobuffalo/buffalo/worker"
10	"github.com/nats-io/nats.go"
11)
12
13func main() {
14	connection := x.Must(nats.Connect(nats.DefaultURL))
15	defer connection.Close()
16
17	stream := x.Must(connection.JetStream())
18
19	stream.QueueSubscribe("gtkpr.jobs.job_1", "default", func(msg *nats.Msg) {
20		var args worker.Args
21		json.Unmarshal(msg.Data, &args)
22
23		fmt.Printf("job: %v\n", args)
24	})
25
26	stream.QueueSubscribe("gtkpr.event.even", "even", func(msg *nats.Msg) {
27		var args worker.Args
28		json.Unmarshal(msg.Data, &args)
29
30		fmt.Printf("even: %v\n", args)
31		msg.Ack()
32	})
33
34	stream.QueueSubscribe("gtkpr.event.odd", "odd", func(msg *nats.Msg) {
35		var args worker.Args
36		json.Unmarshal(msg.Data, &args)
37
38		fmt.Printf("odd: %v\n", args)
39		msg.Ack()
40	})
41	stream.QueueSubscribe("gtkpr.event.*", "all", func(msg *nats.Msg) {
42		var args worker.Args
43		json.Unmarshal(msg.Data, &args)
44
45		fmt.Printf("all: %v\n", args)
46		msg.Ack()
47	})
48
49	for {
50		time.Sleep(10 * time.Second)
51	}
52}