44 "bufio"
55 "fmt"
66 "github.com/rabbitmq/rabbitmq-stream-go-client/pkg/amqp"
7- "github.com/rabbitmq/rabbitmq-stream-go-client/pkg/message"
87 "github.com/rabbitmq/rabbitmq-stream-go-client/pkg/stream"
98
109 //"github.com/rabbitmq/rabbitmq-stream-go-client/pkg/stream"
@@ -20,14 +19,6 @@ func CheckErr(err error) {
2019 }
2120}
2221
23- func CreateArrayMessagesForTesting (bacthMessages int ) []message.StreamMessage {
24- var arr []message.StreamMessage
25- for z := 0 ; z < bacthMessages ; z ++ {
26- arr = append (arr , amqp .NewMessage ([]byte ("hello_world_" + strconv .Itoa (z ))))
27- }
28- return arr
29- }
30-
3122func main () {
3223 reader := bufio .NewReader (os .Stdin )
3324
@@ -41,45 +32,43 @@ func main() {
4132 SetUser ("test" ).
4233 SetPassword ("test" ))
4334 CheckErr (err )
44- streamName := "no"
45- //err = env.DeclareStream(streamName,
46- // &stream.StreamOptions{
47- // MaxLengthBytes: stream.ByteCapacity{}.GB(2),
48- // },
49- //)
50- //CheckErr(err)
35+ streamName := "pub-error"
36+ err = env .DeclareStream (streamName ,
37+ & stream.StreamOptions {
38+ MaxLengthBytes : stream.ByteCapacity {}.GB (2 ),
39+ },
40+ )
5141
52- producer , err := env .NewProducer (streamName , & stream.ProducerOptions {Name : "myProducer" })
42+ CheckErr (err )
43+
44+ producer , err := env .NewProducer (streamName , stream .NewProducerOptions ().SetProducerName ("myProducer" ))
5345 CheckErr (err )
5446
5547 // This channel receives the callback in case the is some error during the
5648 // publisher.
5749 chPublishError := producer .NotifyPublishError ()
5850 handlePublishError (chPublishError )
5951
60- go func () {
61- for i := 0 ; i < 100 ; i ++ {
62- err := producer .BatchSend (CreateArrayMessagesForTesting (2 ))
63- CheckErr (err )
64- }
65- }()
66- // Here we close the producer during the publishing
67- // so an publish error is raised
68-
69- err = producer .Close ()
70- CheckErr (err )
52+ for i := 0 ; i < 100 ; i ++ {
53+ msg := amqp .NewMessage ([]byte ("hello_world_" + strconv .Itoa (i )))
54+ err := producer .Send (msg )
55+ CheckErr (err )
56+ }
7157
7258 fmt .Println ("Press any key to stop " )
7359 _ , _ = reader .ReadString ('\n' )
7460 CheckErr (err )
61+ err = env .DeleteStream (streamName )
62+ CheckErr (err )
63+ err = env .Close ()
64+ CheckErr (err )
7565
7666}
7767
7868func handlePublishError (publishError stream.ChannelPublishError ) {
7969 go func () {
8070 var totalMessages int32
81- for {
82- pError := <- publishError
71+ for pError := range publishError {
8372 atomic .AddInt32 (& totalMessages , 1 )
8473 var data [][]byte
8574 if pError .UnConfirmedMessage != nil {
0 commit comments