Browse Source

Add examples (producer and consumer).

Evan Huus 12 years ago
parent
commit
b3c67152ff
2 changed files with 54 additions and 0 deletions
  1. 34 0
      kafka/consumer_test.go
  2. 20 0
      kafka/producer_test.go

+ 34 - 0
kafka/consumer_test.go

@@ -2,8 +2,10 @@ package kafka
 
 
 import (
 import (
 	"encoding/binary"
 	"encoding/binary"
+	"fmt"
 	"sarama/mock"
 	"sarama/mock"
 	"testing"
 	"testing"
+	"time"
 )
 )
 
 
 func TestSimpleConsumer(t *testing.T) {
 func TestSimpleConsumer(t *testing.T) {
@@ -87,3 +89,35 @@ func TestSimpleConsumer(t *testing.T) {
 	consumer.Close()
 	consumer.Close()
 	client.Close()
 	client.Close()
 }
 }
+
+func ExampleConsumer() {
+	client, err := NewClient("myClient", "localhost", 9092)
+	if err != nil {
+		panic(err)
+	} else {
+		fmt.Println("> connected")
+	}
+
+	consumer, err := NewConsumer(client, "myTopic", 0, "myConsumerGroup")
+	if err != nil {
+		panic(err)
+	} else {
+		fmt.Println("> consumer ready")
+	}
+
+consumerLoop:
+	for {
+		select {
+		case msg := <-consumer.Messages():
+			fmt.Println(msg)
+		case err := <-consumer.Errors():
+			panic(err)
+		case <-time.After(5 * time.Second):
+			fmt.Println("> timed out")
+			break consumerLoop
+		}
+	}
+
+	consumer.Close()
+	client.Close()
+}

+ 20 - 0
kafka/producer_test.go

@@ -2,6 +2,7 @@ package kafka
 
 
 import (
 import (
 	"encoding/binary"
 	"encoding/binary"
+	"fmt"
 	"sarama/mock"
 	"sarama/mock"
 	"testing"
 	"testing"
 )
 )
@@ -60,3 +61,22 @@ func TestSimpleProducer(t *testing.T) {
 
 
 	client.Close()
 	client.Close()
 }
 }
+
+func ExampleProducer() {
+	client, err := NewClient("myClient", "localhost", 9092)
+	if err != nil {
+		panic(err)
+	} else {
+		fmt.Println("> connected")
+	}
+	producer := NewProducer(client, "myTopic", RandomPartitioner{})
+
+	err = producer.SendMessage(nil, StringEncoder("testing 123"))
+	if err != nil {
+		panic(err)
+	} else {
+		fmt.Println("> message sent")
+	}
+
+	client.Close()
+}