Skip to content

Instantly share code, notes, and snippets.

@mdfranz
Created June 19, 2021 22:57
Show Gist options
  • Save mdfranz/69af05d2402dcbec227558409741530b to your computer and use it in GitHub Desktop.
Save mdfranz/69af05d2402dcbec227558409741530b to your computer and use it in GitHub Desktop.
package main
import (
"context"
"log"
"os"
"github.com/nats-io/nats.go"
)
func main() {
nc, err := nats.Connect(os.Args[1], nats.UserInfo(os.Getenv("NATS_USER"), os.Getenv("NATS_PASSWORD")))
if err != nil {
panic(err)
}
js, _ := nc.JetStream()
// subject, consumer
sub, err := js.PullSubscribe(os.Args[2], os.Args[3])
if err != nil {
log.Println("pull sub: ", err)
}
// just do it in batches of 10
for {
msgs, err := sub.Fetch(10, nats.Context(context.Background()))
if err != nil {
log.Println("sub fetch: ", err)
break
}
for _, msg := range msgs {
log.Printf("Received: %s", msg.Data)
_ = msg.Ack()
}
}
sig := make(chan os.Signal, 1)
log.Println("running...")
<-sig
log.Println("stop")
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment