mirror of
https://github.com/weloe/token-go.git
synced 2025-09-27 03:46:01 +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() {
|
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
|
||||||
|
@@ -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) {
|
||||||
|
@@ -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
|
||||||
|
@@ -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)
|
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user