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() {
defaultAdapter, ok := e.adapter.(*persist.DefaultAdapter)
if ok {
if !defaultAdapter.GetCleanTimer() {
return
}
dataRefreshPeriod := e.config.DataRefreshPeriod
if period := dataRefreshPeriod; period >= 0 {
err := defaultAdapter.EnableCleanTimer(dataRefreshPeriod)
err := defaultAdapter.StartCleanTimer(dataRefreshPeriod)
if err != nil {
log2.Printf("enble adapter cleanTimer failed: %v", err)
return

View File

@@ -12,7 +12,7 @@ type DefaultLogger struct {
}
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) {

View File

@@ -11,15 +11,17 @@ import (
)
type DefaultAdapter struct {
cache cache.Cache
serializer Serializer
cache cache.Cache
serializer Serializer
enableRefreshTimer bool
}
var _ Adapter = (*DefaultAdapter)(nil)
func NewDefaultAdapter() *DefaultAdapter {
return &DefaultAdapter{
cache: cache.NewDefaultLocalCache(),
cache: cache.NewDefaultLocalCache(),
enableRefreshTimer: true,
}
}
@@ -133,10 +135,18 @@ func (d *DefaultAdapter) DeleteBatchFilteredKey(keyPrefix string) error {
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)
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)
return nil

View File

@@ -181,9 +181,9 @@ func TestDefaultAdapter_InterfaceOperation(t *testing.T) {
func TestDefaultAdapter_DeleteBatchFilteredValue(t *testing.T) {
adapter := NewTestDefaultAdapter()
err := adapter.(*DefaultAdapter).EnableCleanTimer(2)
err := adapter.(*DefaultAdapter).StartCleanTimer(2)
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 {
t.Errorf("SetStr() failed: %v", err)
@@ -202,5 +202,4 @@ func TestDefaultAdapter_DeleteBatchFilteredValue(t *testing.T) {
if str != "" {
t.Errorf("DeleteBatchFilteredKey() failed")
}
time.Sleep(5 * time.Second)
}