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{}
}