Last active
August 29, 2015 14:25
-
-
Save kingluo/5018a285a523124f5381 to your computer and use it in GitHub Desktop.
go libpq
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- testpq.go 2015-07-17 16:18:53.616212373 +0800 | |
+++ testpq2.go 2015-07-17 16:03:03.420162955 +0800 | |
@@ -8,6 +8,9 @@ | |
_ "github.com/lib/pq" | |
) | |
+//#include <unistd.h> | |
+import "C" | |
+ | |
func query(db *sql.DB, tstart time.Time, tend time.Time) { | |
log.Println("query from", tstart, "to", tend) | |
rows, err := db.Query("select * from users where ts <= $2 and ts > $1", tstart, tend) | |
@@ -43,8 +46,13 @@ | |
cur := time.Now().Truncate(time.Minute) | |
tstart, tend := cur.Add(time.Minute*-1), cur | |
+ start := true | |
for { | |
query(db, tstart, tend) | |
+ if start { | |
+ start = false | |
+ C.sleep(60 * 3) | |
+ } | |
delta := time.Now().Sub(tend).Minutes() | |
tstart, tend = tend, tend.Add(time.Minute*1) | |
if delta >= 1 { |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
2015/07/17 15:45:41 testpq.go:15: query from 2015-07-17 15:44:00 +0800 CST to 2015-07-17 15:45:00 +0800 CST | |
2015/07/17 15:48:41 testpq.go:15: query from 2015-07-17 15:45:00 +0800 CST to 2015-07-17 15:46:00 +0800 CST | |
2015/07/17 15:48:41 testpq.go:15: query from 2015-07-17 15:46:00 +0800 CST to 2015-07-17 15:47:00 +0800 CST | |
2015/07/17 15:48:41 testpq.go:15: query from 2015-07-17 15:47:00 +0800 CST to 2015-07-17 15:48:00 +0800 CST | |
2015/07/17 15:49:41 testpq.go:15: query from 2015-07-17 15:48:00 +0800 CST to 2015-07-17 15:49:00 +0800 CST |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package main | |
import ( | |
"database/sql" | |
"log" | |
"time" | |
_ "github.com/lib/pq" | |
) | |
func query(db *sql.DB, tstart time.Time, tend time.Time) { | |
log.Println("query from", tstart, "to", tend) | |
rows, err := db.Query("select * from users where ts <= $2 and ts > $1", tstart, tend) | |
if err != nil { | |
log.Fatal(err) | |
} | |
defer rows.Close() | |
var id int | |
var name string | |
var ts time.Time | |
for rows.Next() { | |
err := rows.Scan(&id, &name, &ts) | |
if err != nil { | |
log.Fatal(err) | |
} | |
log.Println(id, name, ts) | |
} | |
err = rows.Err() | |
if err != nil { | |
log.Fatal(err) | |
} | |
} | |
func main() { | |
log.SetFlags(log.LstdFlags | log.Lshortfile) | |
db, err := sql.Open("postgres", "postgres://test:test@127.0.0.1:5432/test?sslmode=require") | |
if err != nil { | |
log.Fatal(err) | |
} | |
defer db.Close() | |
cur := time.Now().Truncate(time.Minute) | |
tstart, tend := cur.Add(time.Minute*-1), cur | |
for { | |
query(db, tstart, tend) | |
delta := time.Now().Sub(tend).Minutes() | |
tstart, tend = tend, tend.Add(time.Minute*1) | |
if delta >= 1 { | |
continue | |
} | |
time.Sleep(time.Minute * 1) | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment