移除缓存包
This commit is contained in:
92
lib/cache/badger_db/badger_db.go
vendored
92
lib/cache/badger_db/badger_db.go
vendored
@@ -1,92 +0,0 @@
|
|||||||
package badger_db
|
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
"time"
|
|
||||||
|
|
||||||
"github.com/dgraph-io/badger/v4"
|
|
||||||
"github.com/pkg/errors"
|
|
||||||
)
|
|
||||||
|
|
||||||
type Cache struct {
|
|
||||||
db *badger.DB
|
|
||||||
}
|
|
||||||
|
|
||||||
func NewCacheDB(db *badger.DB) *Cache {
|
|
||||||
return &Cache{
|
|
||||||
db: db,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *Cache) SetNX(key string, value interface{}) error {
|
|
||||||
err := c.db.Update(func(txn *badger.Txn) error {
|
|
||||||
_, err := txn.Get([]byte(key))
|
|
||||||
if errors.Is(err, badger.ErrKeyNotFound) {
|
|
||||||
v := []byte(fmt.Sprintf("%v", value))
|
|
||||||
return txn.Set([]byte(key), v)
|
|
||||||
}
|
|
||||||
return err
|
|
||||||
})
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *Cache) Set(key string, value interface{}) error {
|
|
||||||
err := c.db.Update(func(txn *badger.Txn) error {
|
|
||||||
v := []byte(fmt.Sprintf("%v", value))
|
|
||||||
return txn.Set([]byte(key), v)
|
|
||||||
})
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *Cache) Del(key string) error {
|
|
||||||
err := c.db.Update(func(txn *badger.Txn) error {
|
|
||||||
return txn.Delete([]byte(key))
|
|
||||||
})
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *Cache) Clean() error {
|
|
||||||
return c.db.DropAll()
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *Cache) Get(key string) ([]byte, error) {
|
|
||||||
var result []byte
|
|
||||||
err := c.db.View(func(txn *badger.Txn) error {
|
|
||||||
item, err := txn.Get([]byte(key))
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
err = item.Value(func(val []byte) error {
|
|
||||||
result = append([]byte{}, val...)
|
|
||||||
return nil
|
|
||||||
})
|
|
||||||
return err
|
|
||||||
})
|
|
||||||
return result, err
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *Cache) SetWithTTL(key string, value interface{}, duration time.Duration) error {
|
|
||||||
err := c.db.Update(func(txn *badger.Txn) error {
|
|
||||||
v := []byte(fmt.Sprintf("%v", value))
|
|
||||||
e := badger.NewEntry([]byte(key), v).WithTTL(duration)
|
|
||||||
return txn.SetEntry(e)
|
|
||||||
})
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *Cache) PrefixScanKey(prefixStr string) ([]string, error) {
|
|
||||||
var res []string
|
|
||||||
err := c.db.View(func(txn *badger.Txn) error {
|
|
||||||
it := txn.NewIterator(badger.DefaultIteratorOptions)
|
|
||||||
defer it.Close()
|
|
||||||
prefix := []byte(prefixStr)
|
|
||||||
for it.Seek(prefix); it.ValidForPrefix(prefix); it.Next() {
|
|
||||||
item := it.Item()
|
|
||||||
k := item.Key()
|
|
||||||
res = append(res, string(k))
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
})
|
|
||||||
return res, err
|
|
||||||
}
|
|
||||||
55
lib/cache/cache.go
vendored
55
lib/cache/cache.go
vendored
@@ -1,55 +0,0 @@
|
|||||||
package cache
|
|
||||||
|
|
||||||
import (
|
|
||||||
"time"
|
|
||||||
|
|
||||||
"ems.agt/lib/cache/badger_db"
|
|
||||||
"ems.agt/lib/log"
|
|
||||||
"github.com/dgraph-io/badger/v4"
|
|
||||||
)
|
|
||||||
|
|
||||||
var CACHE *badger_db.Cache
|
|
||||||
|
|
||||||
func Init() {
|
|
||||||
options := badger.Options{
|
|
||||||
Dir: "tmp/badger",
|
|
||||||
ValueDir: "tmp/badger",
|
|
||||||
ValueLogFileSize: 64 << 20,
|
|
||||||
ValueLogMaxEntries: 10 << 20,
|
|
||||||
VLogPercentile: 0.1,
|
|
||||||
|
|
||||||
MemTableSize: 32 << 20,
|
|
||||||
BaseTableSize: 2 << 20,
|
|
||||||
BaseLevelSize: 10 << 20,
|
|
||||||
TableSizeMultiplier: 2,
|
|
||||||
LevelSizeMultiplier: 10,
|
|
||||||
MaxLevels: 7,
|
|
||||||
NumGoroutines: 4,
|
|
||||||
MetricsEnabled: true,
|
|
||||||
NumCompactors: 2,
|
|
||||||
NumLevelZeroTables: 5,
|
|
||||||
NumLevelZeroTablesStall: 15,
|
|
||||||
NumMemtables: 1,
|
|
||||||
BloomFalsePositive: 0.01,
|
|
||||||
BlockSize: 2 * 1024,
|
|
||||||
SyncWrites: false,
|
|
||||||
NumVersionsToKeep: 1,
|
|
||||||
CompactL0OnClose: false,
|
|
||||||
VerifyValueChecksum: false,
|
|
||||||
BlockCacheSize: 32 << 20,
|
|
||||||
IndexCacheSize: 0,
|
|
||||||
ZSTDCompressionLevel: 1,
|
|
||||||
EncryptionKey: []byte{},
|
|
||||||
EncryptionKeyRotationDuration: 10 * 24 * time.Hour, // Default 10 days.
|
|
||||||
DetectConflicts: true,
|
|
||||||
NamespaceOffset: -1,
|
|
||||||
}
|
|
||||||
|
|
||||||
cache, err := badger.Open(options)
|
|
||||||
if err != nil {
|
|
||||||
log.Errorf("failed to badger init cache:", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
CACHE = badger_db.NewCacheDB(cache)
|
|
||||||
log.Info("init cache successfully")
|
|
||||||
}
|
|
||||||
@@ -8,7 +8,6 @@ import (
|
|||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"ems.agt/lib/cache"
|
|
||||||
"ems.agt/lib/log"
|
"ems.agt/lib/log"
|
||||||
"github.com/shirou/gopsutil/v3/host"
|
"github.com/shirou/gopsutil/v3/host"
|
||||||
"github.com/shirou/gopsutil/v3/net"
|
"github.com/shirou/gopsutil/v3/net"
|
||||||
@@ -115,12 +114,6 @@ func ProcessData(c *Client, inputMsg []byte) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
switch wsInput.Type {
|
switch wsInput.Type {
|
||||||
case "wget":
|
|
||||||
res, err := getDownloadProcess(wsInput.DownloadProgress)
|
|
||||||
if err != nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
c.Msg <- res
|
|
||||||
case "ps":
|
case "ps":
|
||||||
res, err := getProcessData(wsInput.PsProcessConfig)
|
res, err := getProcessData(wsInput.PsProcessConfig)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -150,22 +143,6 @@ type Process struct {
|
|||||||
Name string `json:"name"`
|
Name string `json:"name"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func getDownloadProcess(progress DownloadProgress) (res []byte, err error) {
|
|
||||||
var result []Process
|
|
||||||
for _, k := range progress.Keys {
|
|
||||||
value, err := cache.CACHE.Get(k)
|
|
||||||
if err != nil {
|
|
||||||
log.Errorf("get cache error,err %s", err.Error())
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
downloadProcess := &Process{}
|
|
||||||
_ = json.Unmarshal(value, downloadProcess)
|
|
||||||
result = append(result, *downloadProcess)
|
|
||||||
}
|
|
||||||
res, err = json.Marshal(result)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
const (
|
const (
|
||||||
b = uint64(1)
|
b = uint64(1)
|
||||||
kb = 1024 * b
|
kb = 1024 * b
|
||||||
|
|||||||
Reference in New Issue
Block a user