https://github.com/sunerpy/rabbitmqpool
rabbitmqpool
https://github.com/sunerpy/rabbitmqpool
rabbitmq-pool-golang
Last synced: 6 months ago
JSON representation
rabbitmqpool
- Host: GitHub
- URL: https://github.com/sunerpy/rabbitmqpool
- Owner: sunerpy
- Created: 2023-12-09T19:19:53.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-06-25T08:03:47.000Z (about 2 years ago)
- Last Synced: 2024-06-26T09:28:58.810Z (about 2 years ago)
- Topics: rabbitmq-pool-golang
- Language: Go
- Homepage:
- Size: 30.3 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: Readme.md
Awesome Lists containing this project
README
### 用于rabbitmq的连接池
fork自https://gitee.com/tym_hmm/rabbitmq-pool-go.git
一边学习一边改
1. 已实现功能:
* 使用function option为rabbitmq设置默认值
2. 待实现功能:
* 消息发送失败时存入本地文件
* 捕获错误日志
## 用法
### 生产者
```go
import (
"github.com/sunerpy/rabbitmqpool"
"sync"
"os"
"fmt"
)
func main(){
var instancePoolProducer *rabbitmqpool.RabbitPool
var testConf = rabbitmqpool.NewAmqpConf("192.1.1.210", 5672, "root", "root", rabbitmqpool.WithRabbitType(1))
var wg sync.WaitGroup
var err error
go rabbitmqpool.TmpMain()
localFile := "localdata.txt"
instancePoolProducer, err = rabbitmqpool.InitPool(testConf)
if err != nil || instancePoolProducer == nil {
fmt.Println("Here get pool failed...start save to file...")
os.Exit(1)
}
for i := 0; i < 5; i++ {
wg.Add(1)
go func(num int) {
defer wg.Done()
data := rabbitmqpool.GetRabbitMqDataFormat("testChange5", rabbitmqpool.EXCHANGE_TYPE_TOPIC, "textQueue5", "", "这里是数据", localFile)
data.Data = fmt.Sprintf("update num is %v", jsonData)
err := instancePoolProducer.Push(data)
if err != nil {
fmt.Printf("err is %v", err)
}
}(i)
}
wg.Wait()
}
```