otto 1 year ago
parent
commit
0969686535
  1. 46
      README.md

46
README.md

@ -1,40 +1,54 @@
## 本地队列
在服务内部创建使用列队
#### 创建队列
#### go module
```shell
go get -u git.gz.internal.jumaiyx.cn/pkg/queue
```
#### 消费者
```go
// 创建队列的消费对象
type Mess struct {
Message string
Code int
type Queue struct {
log log.Logger
}
func NewMess() *Mess {
return &Mess{
Message: "ok",
func NewQueue() *Queue {
return &Queue{
log:log
}
}
// 自定义解析消息体
type Message struct {
Code int64
}
// 继承的消费方法
func (m *Mess) Consumer(mess interface{}) error {
mm := mess.(Mess)
fmt.Println(mm)
func (m *Queue) Consumer(message interface{}) error {
data, err := message.(Message)
fmt.Println(data.Code)
time.Sleep(time.Second * 1)
return nil
}
// 继承的消费错误方法,消费异常会传递进来
func (m *Mess) Error(err error) {
fmt.Println("errr:", err)
func (m *Queue) Error(err error) {
fmt.Println("err:", err)
}
```
#### 生产者
```go
func main() {
log := log.DefaultLogger()
// 创建一个队列
newQueue := queue.NewQueue(log.DefaultLogger(), NewMess())
newQueue := queue.NewQueue(log, NewQueue(log))
// 提交生产者信息体
newQueue.Producer(Mess{Message: "ok", Code: i})
newQueue.Producer(Message{Code: 100})
time.Sleep(time.Second * 10)
}
```

Loading…
Cancel
Save