Skip to content

Commit

Permalink
release cache folder after using
Browse files Browse the repository at this point in the history
  • Loading branch information
vibros68 committed Dec 20, 2023
1 parent 481b154 commit 6490050
Showing 1 changed file with 33 additions and 11 deletions.
44 changes: 33 additions & 11 deletions politeiawww/cmd/politeiavoter/cache.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,9 @@ import (
)

type piCache struct {
db *badger.DB
//db *badger.DB
timeout time.Duration
dbPath string
}

type piCacheRecord struct {
Expand All @@ -18,24 +19,37 @@ type piCacheRecord struct {
}

func newCache(dbPath string, timeout time.Duration) (*piCache, error) {
badgerOpts := badger.DefaultOptions(dbPath)
badgerOpts.Logger = nil
db, err := badger.Open(badgerOpts)
if err != nil {
return nil, err
}
return &piCache{
db: db,
dbPath: dbPath,
timeout: timeout,
}, nil
}

func (p *piCache) openDb() (*badger.DB, error) {
badgerOpts := badger.DefaultOptions(p.dbPath)
badgerOpts.Logger = nil
var err error
for i := 0; i < 10; i++ {
db, connErr := badger.Open(badgerOpts)
if connErr == nil {
return db, nil
}
err = connErr
time.Sleep(time.Millisecond * 500)
}
return nil, err
}

func (p *piCache) Set(key string, data []byte) error {
db, err := p.openDb()
if err != nil {
return err
}
record := piCacheRecord{
Data: data,
At: time.Now(),
}
return p.db.Update(func(txn *badger.Txn) error {
return db.Update(func(txn *badger.Txn) error {
recordData, err := json.Marshal(record)
if err != nil {
return err
Expand All @@ -45,8 +59,12 @@ func (p *piCache) Set(key string, data []byte) error {
}

func (p *piCache) Get(key string) ([]byte, error) {
db, err := p.openDb()
if err != nil {
return nil, err
}
var record piCacheRecord
err := p.db.View(func(txn *badger.Txn) error {
err = db.View(func(txn *badger.Txn) error {
item, err := txn.Get([]byte(key))
if err != nil {
return err
Expand All @@ -67,7 +85,11 @@ func (p *piCache) Get(key string) ([]byte, error) {
}

func (p *piCache) Clear() error {
return p.db.Update(func(txn *badger.Txn) error {
db, err := p.openDb()
if err != nil {
return err
}
return db.Update(func(txn *badger.Txn) error {
opts := badger.DefaultIteratorOptions
opts.PrefetchSize = 10
it := txn.NewIterator(opts)
Expand Down

0 comments on commit 6490050

Please sign in to comment.