golang mysql自动重连_rabbitmq消费者插入mysql数据并实现断线自动重连
连接rabbitmq的代码
消费者断线重连:
package main
import (
"log"
"github.com/streadway/amqp"
"database/sql"
_"github.com/go-sql-driver/mysql"
//"time"
)
func insert(db *sql.DB, a []byte) {
stmt, err := db.Prepare("INSERT INTO rabbit (name) VALUES(?)")
stmt.Exec(a)
defer stmt.Close()
if err != nil {
log.Println(err)
return
}
}
func failOnError(err error, msg string) {
if err != nil {
log.Fatalf("%s: %s", msg, err)
}
}
func main() {
//打开mysql
db, err := sql.Open("mysql", "root:0022....hh@tcp(127.0.0.1:3306)/rabbitmq?charset=utf8")
if err != nil {
log.Fatalf("Open database error: %s\n", err)
}
defer db.Close()
err = db.Ping()
if err != nil {
log.Fatal(err)
}
//forever := make(chan bool)
//连接rabbitmq
for {
conn, err := amqp.Dial("amqp://guest:guest@localhost:5672/")
if err != nil {
continue
}
failOnError(err, "Failed to connect to RabbitMQ")
defer conn.Close()
ch, err := conn.Channel()
failOnError(err, "Failed to open a channel")
defer ch.Close()
q, err := ch.QueueDeclare(
"hello", // name
true, // durable
false, // delete when unused
false, // exclusive
false, // no-wait
nil, // arguments
)
failOnError(err, "Failed to declare a queue")
// 创建消费者
msgs, err := ch.Consume(
q.Name, // queue
"", // consumer
true, // auto-ack
false, // exclusive
false, // no-local
false, // no-wait
nil, // args
)
failOnError(err, "Failed to register a consumer")
// 协程获取消息队列处理结果
go func() {
for d := range msgs {
log.Printf("Received a message: %s", d.Body)
insert(db, d.Body)
}
}()
if conn != nil {
//time.Sleep(50*time.Second)
continue
}
log.Printf(" [*] Waiting for messages. To exit press CTRL+C")
//
}
}
有疑问加站长微信联系(非本文作者))
golang mysql自动重连_rabbitmq消费者插入mysql数据并实现断线自动重连相关推荐
- 完整MySQL入门指令练习,有插入表格数据
完整MySQL入门指令练习,有插入表格数据 欢迎关注微.信公众号:软件集合 // 完整MySQL入门训练,有插入数据 -- <01 mysql数据库的操作> -- 连接数据库mysql - ...
- mysql的一个字段最多能插入多少数据?我们存入text类型的值上限是多大?
文章目录 一.前言 二.mysql的行大小限制 1.结论如下 2.行大小限制 3.页大小设置以及特性 (1)查看当前数据页大小 (2)关于数据页的解释 4.text类型和blob类型的特殊之处 5.t ...
- mysql输入中文出现 号_MySQL插入中文数据出现?号
运行环境:win10 mysql版本:Mysql5.6 做一个项目的时候,向数据库插入中文数据,一直都是? 问过度娘之后,她提供的以下办法: 1.在连接数据库的url后加:?useUnicode=tr ...
- mysql 存储过程 脚本_mysql利用存储过程插入大量数据脚本
1.检查是否开启二进制日志 #查看是否开启二进制日志,ON表示开启,OFF表示没有开启 show variables like'log_bin_trust_function_creators'; #若 ...
- java 插入 mysql 乱码_解决java中插入mysql中文乱码的方法
解决java中插入mysql中文乱码的方法 发布时间:2020-07-11 14:35:11 来源:亿速云 阅读:100 作者:清晨 这篇文章主要介绍解决java中插入mysql中文乱码的方法,文中介 ...
- 【带移动搜索功能】织梦dedecms手机WAP插件专业版 织梦自动建手机WAP站 PC+WAP数据同步更新 访问自动跳转
安装步数: ( 插件及高清视频教程:QQ 86862635 或www.wlyx158.com 搜索 织梦自动建手机WAP站 PC+WAP数据同步更新) 1. 检查数据表的前缀是不是dede_ ( ...
- jsp获取当前时间存入mysql数据库_jsp获取当前时间插入Mysql数据库?
匿名用户 1级 2013-05-27 回答 展开全部 MySQL 中,默认值无法使用函数 也就是你无法 设置某一列,默认值是 NOW () 这样的处理 假如需要 某列的默认值为 当前数据库时间,那么可 ...
- 命令行输入mysql不行_MySQL命令行无法插入中文数据
下面的方法是针对window系统的 注意: 1 下面的my.ini文件在有些版本的Mysql中的安装目录找不到,比如我用的版本5.5.60-log就找不到,想要找到这个文件,需要设置显示window ...
- created at mysql类型_MySQL created_at 日期时间字段在数据变更时,自动更新
今天在使用 GoAdmin 开发后台功能时,发现 GoAdmin 没有像 Laravel 那样自带 created_at 字段更新功能.即数据发送变化时,无法自动更新 created_at 字段. 而 ...
最新文章
- [转]asp.net权限认证:HTTP基本认证(http basic)
- Quartus调用Modelsim SE避免重复编译Altera器件库的方法
- 首发:一份国内机器学习爱好者的性别比例的抽样调查
- PHP中用于精确计算的bcmath扩展
- DelayQueue详解
- stm32单片机屏幕一直闪_STM32使用HAL库函数点亮OLED
- js变量提升_学习笔记:JS中的作用域和预解析
- 谁还没个黑历史了。。。 | 今日最佳
- P3911 最小公倍数之和 (atcoder C - LCMs)(反演)
- 编程语言性能实测,Go 比 Python 更胜一筹?
- 12个职场信条让你的工作不可替代
- shell编程之函数简单使用
- [改善Java代码]边界,边界,还是边界
- 单机数据库优化的一些实践
- html5效果案例,10个优秀HTML5网站案例赏析
- 如何减小电压跟随器输出电阻_电压跟随器只会跟踪?不!请看看它对电路的“魔力”。...
- 哪个云计算认证好?从市场角度浅析一下
- win7 升级到 win10 补丁
- PMP知识点总结—质量功能展开(QFD)
- 杨百翰大学计算机科学,杨百翰大学