refactor: DefaultAdapter add timer enable

This commit is contained in:
weloe
2023-10-15 22:51:49 +08:00
parent 82f65143b3
commit a1b40fe1f2
4 changed files with 22 additions and 10 deletions

View File

@@ -101,9 +101,12 @@ func InitWithConfig(tokenConfig *config.TokenConfig, adapter persist.Adapter) (*
func (e *Enforcer) startCleanTimer() { func (e *Enforcer) startCleanTimer() {
defaultAdapter, ok := e.adapter.(*persist.DefaultAdapter) defaultAdapter, ok := e.adapter.(*persist.DefaultAdapter)
if ok { if ok {
if !defaultAdapter.GetCleanTimer() {
return
}
dataRefreshPeriod := e.config.DataRefreshPeriod dataRefreshPeriod := e.config.DataRefreshPeriod
if period := dataRefreshPeriod; period >= 0 { if period := dataRefreshPeriod; period >= 0 {
err := defaultAdapter.EnableCleanTimer(dataRefreshPeriod) err := defaultAdapter.StartCleanTimer(dataRefreshPeriod)
if err != nil { if err != nil {
log2.Printf("enble adapter cleanTimer failed: %v", err) log2.Printf("enble adapter cleanTimer failed: %v", err)
return return

View File

@@ -12,7 +12,7 @@ type DefaultLogger struct {
} }
func (d *DefaultLogger) StartCleanTimer(period int64) { func (d *DefaultLogger) StartCleanTimer(period int64) {
log.Printf("timer period = %v, timer start", period) log.Printf("timer period = %v, adapter data clean timer start", period)
} }
func (d *DefaultLogger) Enable(bool bool) { func (d *DefaultLogger) Enable(bool bool) {

View File

@@ -11,15 +11,17 @@ import (
) )
type DefaultAdapter struct { type DefaultAdapter struct {
cache cache.Cache cache cache.Cache
serializer Serializer serializer Serializer
enableRefreshTimer bool
} }
var _ Adapter = (*DefaultAdapter)(nil) var _ Adapter = (*DefaultAdapter)(nil)
func NewDefaultAdapter() *DefaultAdapter { func NewDefaultAdapter() *DefaultAdapter {
return &DefaultAdapter{ return &DefaultAdapter{
cache: cache.NewDefaultLocalCache(), cache: cache.NewDefaultLocalCache(),
enableRefreshTimer: true,
} }
} }
@@ -133,10 +135,18 @@ func (d *DefaultAdapter) DeleteBatchFilteredKey(keyPrefix string) error {
return err return err
} }
func (d *DefaultAdapter) EnableCleanTimer(period int64) error { func (d *DefaultAdapter) EnableCleanTimer(b bool) {
d.enableRefreshTimer = b
}
func (d *DefaultAdapter) GetCleanTimer() bool {
return d.enableRefreshTimer
}
func (d *DefaultAdapter) StartCleanTimer(period int64) error {
cacheEx, ok := d.cache.(cache.CacheEx) cacheEx, ok := d.cache.(cache.CacheEx)
if !ok { if !ok {
return errors.New("the cache does not implement the EnableCleanTimer method") return errors.New("the Cache does not implement the StartCleanTimer method")
} }
cacheEx.EnableCleanTimer(period) cacheEx.EnableCleanTimer(period)
return nil return nil

View File

@@ -181,9 +181,9 @@ func TestDefaultAdapter_InterfaceOperation(t *testing.T) {
func TestDefaultAdapter_DeleteBatchFilteredValue(t *testing.T) { func TestDefaultAdapter_DeleteBatchFilteredValue(t *testing.T) {
adapter := NewTestDefaultAdapter() adapter := NewTestDefaultAdapter()
err := adapter.(*DefaultAdapter).EnableCleanTimer(2) err := adapter.(*DefaultAdapter).StartCleanTimer(2)
if err != nil { if err != nil {
t.Fatalf("EnableCleanTimer() failed: %v", err) t.Fatalf("StartCleanTimer() failed: %v", err)
} }
if err = adapter.SetStr("k_1", "v", -1); err != nil { if err = adapter.SetStr("k_1", "v", -1); err != nil {
t.Errorf("SetStr() failed: %v", err) t.Errorf("SetStr() failed: %v", err)
@@ -202,5 +202,4 @@ func TestDefaultAdapter_DeleteBatchFilteredValue(t *testing.T) {
if str != "" { if str != "" {
t.Errorf("DeleteBatchFilteredKey() failed") t.Errorf("DeleteBatchFilteredKey() failed")
} }
time.Sleep(5 * time.Second)
} }