Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package main
- import (
- "context"
- "fmt"
- "os"
- "os/signal"
- "time"
- "github.com/davecgh/go-spew/spew"
- "github.com/Azure/azure-event-hubs-go/v2"
- )
- func main() {
- CONNSTRING := os.Getenv("CONNSTRING")
- CONSUMERGROUP := os.Getenv("CONSUMERGROUP")
- hub, err := eventhub.NewHubFromConnectionString(CONNSTRING)
- if err != nil {
- fmt.Println(err)
- return
- }
- ctx, cancel := context.WithTimeout(context.Background(), 20*time.Second)
- defer cancel()
- handler := func(c context.Context, event *eventhub.Event) error {
- spew.Dump(event.SystemProperties)
- return nil
- }
- runtimeInfo, err := hub.GetRuntimeInformation(ctx)
- if err != nil {
- fmt.Println(err)
- return
- }
- for _, partitionID := range runtimeInfo.PartitionIDs {
- _, err = hub.Receive(
- ctx,
- partitionID,
- handler,
- eventhub.ReceiveWithConsumerGroup(CONSUMERGROUP),
- eventhub.ReceiveWithLatestOffset())
- if err != nil {
- fmt.Println(err)
- return
- }
- }
- signalChan := make(chan os.Signal, 1)
- signal.Notify(signalChan, os.Interrupt, os.Kill)
- <-signalChan
- err = hub.Close(context.Background())
- if err != nil {
- fmt.Println(err)
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement