# go-queue **Repository Path**: wuuder/go-queue ## Basic Information - **Project Name**: go-queue - **Description**: golang 基于channel封装生产者/消费者的本地队列 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-09-21 - **Last Updated**: 2023-09-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 本地队列 golang 基于channel封装生产者/消费者的本地队列 #### go module ```shell go get -u git.gz.internal.jumaiyx.cn/pkg/queue ``` #### 消费者 ```go // 创建队列的消费对象 type Queue struct { log log.Logger } func NewQueue() *Queue { return &Queue{ log:log } } // 自定义解析消息体 type Message struct { Code int64 } // 继承的消费方法 func (m *Queue) Consumer(message interface{}) error { data, err := message.(Message) fmt.Println(data.Code) time.Sleep(time.Second * 1) return nil } // 继承的消费错误方法,消费异常会传递进来,消费者自行处理 func (m *Queue) Error(err error) { fmt.Println("err:", err) } ``` #### 生产者 ```go func main() { log := log.DefaultLogger() // 创建一个队列 newQueue := queue.NewQueue(log, NewQueue(log)) // 提交生产者信息体 newQueue.Producer(Message{Code: 100}) time.Sleep(time.Second * 10) } ```