otto
1 year ago
1 changed files with 30 additions and 16 deletions
@ -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…
Reference in new issue