Browse Source

Merge pull request #105 from Shopify/async-producer-example

Add an example of an async producer
Evan Huus 10 years ago
parent
commit
ca006b2d40
1 changed files with 31 additions and 0 deletions
  1. 31 0
      producer_test.go

+ 31 - 0
producer_test.go

@@ -324,6 +324,37 @@ func ExampleProducer() {
 	}
 }
 
+func ExampleAsyncProducer() {
+	client, err := NewClient("client_id", []string{"localhost:9092"}, NewClientConfig())
+	if err != nil {
+		panic(err)
+	} else {
+		fmt.Println("> connected")
+	}
+	defer client.Close()
+
+	producer, err := NewProducer(client, nil)
+	if err != nil {
+		panic(err)
+	}
+	defer producer.Close()
+
+	go func() {
+		for err := range producer.Errors() {
+			panic(err)
+		}
+	}()
+
+	for {
+		err = producer.QueueMessage("my_topic", nil, StringEncoder("testing 123"))
+		if err != nil {
+			panic(err)
+		} else {
+			fmt.Println("> message sent")
+		}
+	}
+}
+
 func sendMessage(t *testing.T, producer *Producer, topic string, key string, expectedResponses int) {
 	err := producer.QueueMessage(topic, nil, StringEncoder(key))
 	if err != nil {