mirror of
https://github.com/weloe/token-go.git
synced 2025-09-26 19:41:21 +08:00
refactor: DefaultAdapter add timer enable
This commit is contained in:
@@ -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
|
||||
|
@@ -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) {
|
||||
|
@@ -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
|
||||
|
@@ -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)
|
||||
}
|
||||
|
Reference in New Issue
Block a user