Skip to content

greyireland/amq

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

amq

simple async mq

example

package amq

import (
	"fmt"
	"github.com/go-redis/redis/v8"
	"github.com/greyireland/log"
	"testing"
	"time"
)

type Msg struct {
	Tp   string `json:"tp"`
	Data string `json:"data"`
}

func TestNewSender(t *testing.T) {
	r := redis.NewClient(&redis.Options{
		Addr: "127.0.0.1:6379",
	})
	queue := "test"

	s := NewSender(r, queue)
	go func() {
		for i := 0; i < 100000; i++ {

			s.Send(Msg{
				Tp:   "1",
				Data: fmt.Sprintf("hello %d", i),
			})
		}
	}()
	re := NewReceiver(r, queue)
	go func() {
		for {
			var data Msg
			err := re.Receive(&data)
			if err != nil {
				log.Warn("dequeue error", "err", err)
			}
			fmt.Println("data", data)
		}
	}()
	time.Sleep(10 * time.Second)
}

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages