Refactor db ops measure
This commit is contained in:
parent
0a21d10276
commit
68c1465c92
|
@ -15,7 +15,7 @@ type Contrib struct {
|
|||
}
|
||||
|
||||
func (c *Contrib) Save() {
|
||||
defer measure("SaveContrib", time.Now())
|
||||
defer measure(time.Now(), "SaveContrib")
|
||||
mustExecN(`
|
||||
insert into contribs (week, org_id, repo_id, user_id, commits, additions, deletions)
|
||||
values (:week, :org_id, :repo_id, :user_id, :commits, :additions, :deletions)
|
||||
|
|
11
db/db.go
11
db/db.go
|
@ -11,7 +11,7 @@ import (
|
|||
|
||||
var (
|
||||
db *sqlx.DB
|
||||
queryQueue = make(chan func(), 1000)
|
||||
queryQueue = make(chan func())
|
||||
)
|
||||
|
||||
func Connect(params string) (err error) {
|
||||
|
@ -50,21 +50,18 @@ func Queue(fun func()) {
|
|||
|
||||
func processQueue() {
|
||||
for {
|
||||
fun := <-queryQueue
|
||||
fun()
|
||||
(<-queryQueue)()
|
||||
}
|
||||
}
|
||||
|
||||
func measure(op string, start time.Time) {
|
||||
func measure(start time.Time, op string) {
|
||||
duration := time.Since(start).Nanoseconds()
|
||||
outcome := "succeeded"
|
||||
err := recover()
|
||||
if err != nil {
|
||||
outcome = "failed"
|
||||
defer panic(err)
|
||||
}
|
||||
|
||||
log.Printf("Operation %s %s; time: %d (%dms)\n", op, outcome, duration, duration/1000000)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,7 +8,7 @@ import (
|
|||
)
|
||||
|
||||
func SaveOrgMembers(orgID int, members []int) {
|
||||
defer measure("SaveOrgMembers", time.Now())
|
||||
defer measure(time.Now(), "SaveOrgMembers")
|
||||
tx := db.MustBegin()
|
||||
|
||||
var ids = []string{}
|
||||
|
@ -37,7 +37,7 @@ func SaveOrgMembers(orgID int, members []int) {
|
|||
}
|
||||
|
||||
func SaveTeamMembers(orgID, teamID int, members []int) {
|
||||
defer measure("SaveTeamMembers", time.Now())
|
||||
defer measure(time.Now(), "SaveTeamMembers")
|
||||
tx := db.MustBegin()
|
||||
|
||||
var ids = []string{}
|
||||
|
@ -67,7 +67,7 @@ func SaveTeamMembers(orgID, teamID int, members []int) {
|
|||
}
|
||||
|
||||
func SaveTeamRepos(orgID, teamID int, repos []int) {
|
||||
defer measure("SaveTeamRepos", time.Now())
|
||||
defer measure(time.Now(), "SaveTeamRepos")
|
||||
tx := db.MustBegin()
|
||||
|
||||
var ids = []string{}
|
||||
|
|
|
@ -13,7 +13,7 @@ type Org struct {
|
|||
}
|
||||
|
||||
func (o *Org) Save() {
|
||||
defer measure("SaveOrg", time.Now())
|
||||
defer measure(time.Now(), "SaveOrg")
|
||||
mustExecN(`
|
||||
insert into orgs (id, login, company, avatar_url, updated_at)
|
||||
values (:id, :login, :company, :avatar_url, now())
|
||||
|
@ -26,7 +26,7 @@ func (o *Org) Save() {
|
|||
}
|
||||
|
||||
func UserOrgs(login string) (orgs []*Org) {
|
||||
defer measure("UserOrgs", time.Now())
|
||||
defer measure(time.Now(), "UserOrgs")
|
||||
mustSelect(&orgs, `
|
||||
select o.*
|
||||
from org_members m
|
||||
|
|
|
@ -15,7 +15,7 @@ type Repo struct {
|
|||
}
|
||||
|
||||
func (r *Repo) Save() {
|
||||
defer measure("SaveRepo", time.Now())
|
||||
defer measure(time.Now(), "SaveRepo")
|
||||
mustExecN(`
|
||||
insert into repos (org_id, name, description, is_private, is_fork, updated_at)
|
||||
values (:org_id, :name, :description, :is_private, :is_fork, now())
|
||||
|
@ -30,7 +30,7 @@ func (r *Repo) Save() {
|
|||
}
|
||||
|
||||
func OrgRepos(login string) (repos []*Repo) {
|
||||
defer measure("OrgRepos", time.Now())
|
||||
defer measure(time.Now(), "OrgRepos")
|
||||
mustSelect(&repos, `
|
||||
select *
|
||||
from repos r
|
||||
|
|
16
db/stat.go
16
db/stat.go
|
@ -31,7 +31,7 @@ join repos r on
|
|||
c.repo_id = r.id`
|
||||
|
||||
func StatOrgTop(p map[string]interface{}) (res []StatItem) {
|
||||
defer measure("StatOrgTop", time.Now())
|
||||
defer measure(time.Now(), "StatOrgTop")
|
||||
mustSelectN(&res, fmt.Sprintf(`
|
||||
select
|
||||
%s as item,
|
||||
|
@ -50,7 +50,7 @@ func StatOrgTop(p map[string]interface{}) (res []StatItem) {
|
|||
}
|
||||
|
||||
func StatOrgActivity(p map[string]interface{}) (res []StatPoint) {
|
||||
defer measure("StatOrgActivity", time.Now())
|
||||
defer measure(time.Now(), "StatOrgActivity")
|
||||
mustSelectN(&res, fmt.Sprintf(`
|
||||
select
|
||||
%s as item,
|
||||
|
@ -70,7 +70,7 @@ func StatOrgActivity(p map[string]interface{}) (res []StatPoint) {
|
|||
}
|
||||
|
||||
func StatTeamTop(p map[string]interface{}) (res []StatItem) {
|
||||
defer measure("StatTeamTop", time.Now())
|
||||
defer measure(time.Now(), "StatTeamTop")
|
||||
mustSelectN(&res, fmt.Sprintf(`
|
||||
select
|
||||
%s as item,
|
||||
|
@ -90,7 +90,7 @@ func StatTeamTop(p map[string]interface{}) (res []StatItem) {
|
|||
}
|
||||
|
||||
func StatTeamActivity(p map[string]interface{}) (res []StatPoint) {
|
||||
defer measure("StatTeamActivity", time.Now())
|
||||
defer measure(time.Now(), "StatTeamActivity")
|
||||
mustSelectN(&res, fmt.Sprintf(`
|
||||
select
|
||||
%s as item,
|
||||
|
@ -111,7 +111,7 @@ func StatTeamActivity(p map[string]interface{}) (res []StatPoint) {
|
|||
}
|
||||
|
||||
func StatUserTop(p map[string]interface{}) (res []StatItem) {
|
||||
defer measure("StatUserTop", time.Now())
|
||||
defer measure(time.Now(), "StatUserTop")
|
||||
mustSelectN(&res, `
|
||||
select
|
||||
r.name as item,
|
||||
|
@ -136,7 +136,7 @@ func StatUserTop(p map[string]interface{}) (res []StatItem) {
|
|||
}
|
||||
|
||||
func StatUserActivity(p map[string]interface{}) (res []StatPoint) {
|
||||
defer measure("StatUserActivity", time.Now())
|
||||
defer measure(time.Now(), "StatUserActivity")
|
||||
mustSelectN(&res, `
|
||||
select
|
||||
c.week as week,
|
||||
|
@ -162,7 +162,7 @@ func StatUserActivity(p map[string]interface{}) (res []StatPoint) {
|
|||
}
|
||||
|
||||
func StatRepoTop(p map[string]interface{}) (res []StatItem) {
|
||||
defer measure("StatRepoTop", time.Now())
|
||||
defer measure(time.Now(), "StatRepoTop")
|
||||
mustSelectN(&res, fmt.Sprintf(`
|
||||
select
|
||||
%s as item,
|
||||
|
@ -182,7 +182,7 @@ func StatRepoTop(p map[string]interface{}) (res []StatItem) {
|
|||
}
|
||||
|
||||
func StatRepoActivity(p map[string]interface{}) (res []StatPoint) {
|
||||
defer measure("StatRepoActivity", time.Now())
|
||||
defer measure(time.Now(), "StatRepoActivity")
|
||||
mustSelectN(&res, fmt.Sprintf(`
|
||||
select
|
||||
c.week as week,
|
||||
|
|
|
@ -14,7 +14,7 @@ type Team struct {
|
|||
}
|
||||
|
||||
func (t *Team) Save() {
|
||||
defer measure("SaveTeam", time.Now())
|
||||
defer measure(time.Now(), "SaveTeam")
|
||||
mustExecN(`
|
||||
insert into teams (id, org_id, slug, name, permission, updated_at)
|
||||
values (:id, :org_id, :slug, :name, :permission, now())
|
||||
|
@ -27,7 +27,7 @@ func (t *Team) Save() {
|
|||
}
|
||||
|
||||
func OrgTeams(login string) (teams []*Team) {
|
||||
defer measure("OrgTeams", time.Now())
|
||||
defer measure(time.Now(), "OrgTeams")
|
||||
mustSelect(&teams, `
|
||||
select t.*
|
||||
from teams t
|
||||
|
|
|
@ -15,7 +15,7 @@ type Token struct {
|
|||
}
|
||||
|
||||
func (t *Token) Save() {
|
||||
defer measure("SaveToken", time.Now())
|
||||
defer measure(time.Now(), "SaveToken")
|
||||
mustExecN(`
|
||||
insert into tokens (user, token, quota, remaining, reset_at, created_at)
|
||||
values (:user, :token, :quota, :remaining, :reset_at, now())
|
||||
|
|
|
@ -13,7 +13,7 @@ type User struct {
|
|||
}
|
||||
|
||||
func (u *User) Save() {
|
||||
defer measure("SaveUser", time.Now())
|
||||
defer measure(time.Now(), "SaveUser")
|
||||
mustExecN(`
|
||||
insert into users (id, login, name, avatar_url, updated_at)
|
||||
values (:id, :login, :name, :avatar_url, now())
|
||||
|
@ -26,7 +26,7 @@ func (u *User) Save() {
|
|||
}
|
||||
|
||||
func OrgUsers(login string) (users []*User) {
|
||||
defer measure("OrgUsers", time.Now())
|
||||
defer measure(time.Now(), "OrgUsers")
|
||||
mustSelect(&users, `
|
||||
select u.*
|
||||
from org_members om
|
||||
|
|
Loading…
Reference in New Issue