chore(storage): storage performance issues (#500)

* chore(storage): storage performance issues

1. close storage connection before shutdown the service
2. update windows image

https://github.com/appleboy/gorush/issues/393

Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com>
This commit is contained in:
Bo-Yi Wu
2020-04-23 15:39:24 +08:00
committed by GitHub
parent 4e05611577
commit c2136fffc7
16 changed files with 132 additions and 147 deletions

View File

@@ -19,11 +19,23 @@ func New(config config.ConfYaml) *Storage {
// Storage is interface structure
type Storage struct {
config config.ConfYaml
db *storm.DB
}
// Init client storage.
func (s *Storage) Init() error {
return nil
var err error
s.db, err = storm.Open(s.config.Stat.BoltDB.Path)
return err
}
// Close the storage connection
func (s *Storage) Close() error {
if s.db == nil {
return nil
}
return s.db.Close()
}
// Reset Client storage.
@@ -36,33 +48,17 @@ func (s *Storage) Reset() {
}
func (s *Storage) setBoltDB(key string, count int64) {
db, _ := storm.Open(s.config.Stat.BoltDB.Path)
err := db.Set(s.config.Stat.BoltDB.Bucket, key, count)
err := s.db.Set(s.config.Stat.BoltDB.Bucket, key, count)
if err != nil {
log.Println("BoltDB set error:", err.Error())
}
defer func() {
err := db.Close()
if err != nil {
log.Println("BoltDB error:", err.Error())
}
}()
}
func (s *Storage) getBoltDB(key string, count *int64) {
db, _ := storm.Open(s.config.Stat.BoltDB.Path)
err := db.Get(s.config.Stat.BoltDB.Bucket, key, count)
err := s.db.Get(s.config.Stat.BoltDB.Bucket, key, count)
if err != nil {
log.Println("BoltDB get error:", err.Error())
}
defer func() {
err := db.Close()
if err != nil {
log.Println("BoltDB error:", err.Error())
}
}()
}
// AddTotalCount record push notification count.

View File

@@ -44,4 +44,6 @@ func TestBoltDBEngine(t *testing.T) {
boltDB.Reset()
val = boltDB.GetAndroidError()
assert.Equal(t, int64(0), val)
assert.NoError(t, boltDB.Close())
}