使用golang多线程批量更新数据数据。
共4个文件
main.go
package main
import (
"bufio"
"fmt"
_ "github.com/go-sql-driver/mysql"
"os"
. "pt"
)
func main() {
args := os.Args
if len(args) == 2 {
switch args[1] {
case "1":
Cu.Run()
case "2":
//平台负债表数据静态化
Fz.Run()
case "0":
os.Exit(0)
default:
}
}
if len(args) == 1 {
for {
fmt.Println("操作目录: ")
fmt.Println("1、平台有效客户更新(202:13306-platform)。 ")
fmt.Println("2、平台负债数据静态化(202:13306-platform)。")
fmt.Println("0、退出。 ")
inputReader := bufio.NewReader(os.Stdin)
command, _, _ := inputReader.ReadLine()
code := string(command)
switch code {
case "1":
Cu.Run()
case "2":
//平台负债表数据静态化
Fz.Run()
case "0":
os.Exit(0)
default:
fmt.Println("default")
}
fmt.Println("-------处理完成-------")
}
}
}
pt/lib.go
package pt
import (
"database/sql"
_ "github.com/go-sql-driver/mysql"
"log"
"os"
"time"
)
const (
DSN string = "root:mysqladmin56@tcp(192.168.0.202:13306)/platform?charset=utf8"
//DSN string = "root:@tcp(127.0.0.1:3306)/db_name?charset=utf8"
)
/**
* 数据库连接
*/
func Mydb() *sql.DB {
db, err := sql.Open("mysql", DSN)
if err != nil {
log.Fatalf("Open database error: %s\n", err)
}
//defer db.Close() //不关闭连接
err = db.Ping()
if err != nil {
log.Fatal(err)
}
return db
}
/**
* 升级日志写入 文件追加参数奇葩 多 要3个
* @param {[type]} log string [description]
* @return {[type]} [description]
*/
func writeResult(tag string, data string) {
str_time := time.Now().Format("2006_01_02")
filename := tag + "_" + str_time + ".log"
fl, err := os.OpenFile(filename, os.O_APPEND|os.O_CREATE|os.O_RDWR, 0644)
if err != nil {
log.Println(err)
}
defer fl.Clo