Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit b9867a4

Browse files
Optimize GC
1 parent 5dc62a6 commit b9867a4

File tree

1 file changed

+6
-5
lines changed

1 file changed

+6
-5
lines changed

‎mysql.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -61,15 +61,16 @@ func NewStoreWithDB(db *sql.DB, tableName string, gcInterval int) *Store {
6161
db: &gorp.DbMap{Db: db, Dialect: gorp.MySQLDialect{Encoding: "UTF8", Engine: "MyISAM"}},
6262
tableName: "oauth2_token",
6363
stdout: os.Stderr,
64-
interval: 600,
6564
}
6665
if tableName != "" {
6766
store.tableName = tableName
6867
}
6968

69+
interval := 600
7070
if gcInterval > 0 {
71-
store.interval = gcInterval
71+
interval = gcInterval
7272
}
73+
store.ticker = time.NewTicker(time.Second * time.Duration(interval))
7374

7475
table := store.db.AddTableWithName(StoreItem{}, store.tableName)
7576
table.AddIndex("idx_code", "Btree", []string{"code"})
@@ -89,10 +90,10 @@ func NewStoreWithDB(db *sql.DB, tableName string, gcInterval int) *Store {
8990

9091
// Store mysql token store
9192
type Store struct {
92-
interval int
9393
tableName string
9494
db *gorp.DbMap
9595
stdout io.Writer
96+
ticker *time.Ticker
9697
}
9798

9899
// SetStdout set error output
@@ -103,6 +104,7 @@ func (s *Store) SetStdout(stdout io.Writer) *Store {
103104

104105
// Close close the store
105106
func (s *Store) Close() {
107+
s.ticker.Stop()
106108
s.db.Db.Close()
107109
}
108110

@@ -114,8 +116,7 @@ func (s *Store) errorf(format string, args ...interface{}) {
114116
}
115117

116118
func (s *Store) gc() {
117-
ticker := time.NewTicker(time.Second * time.Duration(s.interval))
118-
for range ticker.C {
119+
for range s.ticker.C {
119120
now := time.Now().Unix()
120121
query := fmt.Sprintf("SELECT COUNT(*) FROM %s WHERE expired_at<=?", s.tableName)
121122
n, err := s.db.SelectInt(query, now)

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /