Go Lang with mysql and cron job demo program

上一篇 / 下一篇  2016-08-15 17:44:13 / 个人分类:Go

package main

import "fmt"
import "time"
import "database/sql"
import _ "github.com/go-sql-driver/mysql"
import "github.com/robfig/cron"

func checkErr(err error) {
  if err != nil {
      panic(err)
    }
}

func updateTime() {
  db, err := sql.Open("mysql", "username:password@tcp(localhost:3306)/databasename")
    checkErr(err)

    //rows, err := db.Query("select * from users")
    // checkErr(err)
    // columns, err := rows.Columns()
    // checkErr(err)
    // values := make([]sql.RawBytes, len(columns))
    // scanArgs := make([]interface{}, len(values))
    // for i:= range values {
    //   scanArgs[i] = &values[i]
    // }

    // for rows.Next() {
    //   err = rows.Scan(scanArgs...)
    //   checkErr(err)
    //   var value string
    //   for i, col := range values {
    //     if col == nil {
    //       value = "NULL"
    //     } else {
    //       value = string(col)
    //     }
    //     fmt.Println(columns[i], ":", value)
    //   }
    //  fmt.Println("------------------------------")
    // }
    var now = time.Now().Format("2006-01-01 15:04:05")
    stmtIns, err := db.Prepare("update table set access_at = '" + now +"'")
    stmtIns.Exec()
    checkErr(err)
    defer stmtIns.Close()

    stmtOut, err := db.Prepare("select access_at from table")
    checkErr(err)
    rows, err := stmtOut.Query()
    var update_at string
    for rows.Next() {
      err = rows.Scan(&update_at)
      checkErr(err)
      if update_at != now {
        fmt.Println("error,need check. send email to ymguo")
      } else {
        fmt.Println("success!!!")
      }
    }
}

func main() {

  i := 0
  c := cron.New()
  //spec := "* 42/2 * * * ?"
  c.AddFunc("@daily", func() {
    i++
    updateTime()
    fmt.Println("cron running:", i)
    })
  c.Start()
  select{}
}


TAG: MySQL mysql

 

评分:0

我来说两句

Open Toolbar