mirror of
				https://github.com/TeaOSLab/EdgeNode.git
				synced 2025-11-04 07:40:56 +08:00 
			
		
		
		
	优化代码
This commit is contained in:
		@@ -19,20 +19,20 @@ func currentWeek() int32 {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
type Item struct {
 | 
					type Item struct {
 | 
				
			||||||
	Type       ItemType `json:"type"`
 | 
						Type       ItemType `json:"-"`
 | 
				
			||||||
	Key        string   `json:"key"`
 | 
						Key        string   `json:"1,omitempty"`
 | 
				
			||||||
	ExpiredAt  int64    `json:"expiredAt"`
 | 
						ExpiresAt  int64    `json:"2,omitempty"`
 | 
				
			||||||
	StaleAt    int64    `json:"staleAt"`
 | 
						StaleAt    int64    `json:"-"`
 | 
				
			||||||
	HeaderSize int64    `json:"headerSize"`
 | 
						HeaderSize int64    `json:"-"`
 | 
				
			||||||
	BodySize   int64    `json:"bodySize"`
 | 
						BodySize   int64    `json:"-"`
 | 
				
			||||||
	MetaSize   int64    `json:"metaSize"`
 | 
						MetaSize   int64    `json:"-"`
 | 
				
			||||||
	Host       string   `json:"host"`     // 主机名
 | 
						Host       string   `json:"-"`     // 主机名
 | 
				
			||||||
	ServerId   int64    `json:"serverId"` // 服务ID
 | 
						ServerId   int64    `json:"3,omitempty"` // 服务ID
 | 
				
			||||||
	Week       int32    `json:"week"`
 | 
						Week       int32    `json:"-"`
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (this *Item) IsExpired() bool {
 | 
					func (this *Item) IsExpired() bool {
 | 
				
			||||||
	return this.ExpiredAt < fasttime.Now().Unix()
 | 
						return this.ExpiresAt < fasttime.Now().Unix()
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func (this *Item) TotalSize() int64 {
 | 
					func (this *Item) TotalSize() int64 {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3,7 +3,9 @@
 | 
				
			|||||||
package caches_test
 | 
					package caches_test
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import (
 | 
					import (
 | 
				
			||||||
 | 
						"encoding/json"
 | 
				
			||||||
	"github.com/TeaOSLab/EdgeNode/internal/caches"
 | 
						"github.com/TeaOSLab/EdgeNode/internal/caches"
 | 
				
			||||||
 | 
						"github.com/TeaOSLab/EdgeNode/internal/utils/fasttime"
 | 
				
			||||||
	"github.com/TeaOSLab/EdgeNode/internal/utils/testutils"
 | 
						"github.com/TeaOSLab/EdgeNode/internal/utils/testutils"
 | 
				
			||||||
	"github.com/TeaOSLab/EdgeNode/internal/zero"
 | 
						"github.com/TeaOSLab/EdgeNode/internal/zero"
 | 
				
			||||||
	"github.com/iwind/TeaGo/rands"
 | 
						"github.com/iwind/TeaGo/rands"
 | 
				
			||||||
@@ -13,6 +15,33 @@ import (
 | 
				
			|||||||
	"time"
 | 
						"time"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func TestItem_Marshal(t *testing.T) {
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							var item = &caches.Item{}
 | 
				
			||||||
 | 
							data, err := json.Marshal(item)
 | 
				
			||||||
 | 
							if err != nil {
 | 
				
			||||||
 | 
								t.Fatal(err)
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							t.Log(string(data))
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							var item = &caches.Item{
 | 
				
			||||||
 | 
								Type:       caches.ItemTypeFile,
 | 
				
			||||||
 | 
								Key:        "https://example.com/index.html",
 | 
				
			||||||
 | 
								ExpiresAt:  fasttime.Now().Unix(),
 | 
				
			||||||
 | 
								HeaderSize: 1 << 10,
 | 
				
			||||||
 | 
								BodySize:   1 << 20,
 | 
				
			||||||
 | 
								MetaSize:   256,
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							data, err := json.Marshal(item)
 | 
				
			||||||
 | 
							if err != nil {
 | 
				
			||||||
 | 
								t.Fatal(err)
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							t.Log(string(data))
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func TestItems_Memory(t *testing.T) {
 | 
					func TestItems_Memory(t *testing.T) {
 | 
				
			||||||
	var stat = &runtime.MemStats{}
 | 
						var stat = &runtime.MemStats{}
 | 
				
			||||||
	runtime.ReadMemStats(stat)
 | 
						runtime.ReadMemStats(stat)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -203,10 +203,10 @@ func (this *SQLiteFileListDB) AddSync(hash string, item *Item) error {
 | 
				
			|||||||
	this.hashMap.Add(hash)
 | 
						this.hashMap.Add(hash)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if item.StaleAt == 0 {
 | 
						if item.StaleAt == 0 {
 | 
				
			||||||
		item.StaleAt = item.ExpiredAt
 | 
							item.StaleAt = item.ExpiresAt
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	_, err := this.insertStmt.Exec(hash, item.Key, item.HeaderSize, item.BodySize, item.MetaSize, item.ExpiredAt, item.StaleAt, item.Host, item.ServerId, fasttime.Now().Unix())
 | 
						_, err := this.insertStmt.Exec(hash, item.Key, item.HeaderSize, item.BodySize, item.MetaSize, item.ExpiresAt, item.StaleAt, item.Host, item.ServerId, fasttime.Now().Unix())
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return this.WrapError(err)
 | 
							return this.WrapError(err)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -122,7 +122,7 @@ func (this *SQLiteFileList) Add(hash string, item *Item) error {
 | 
				
			|||||||
		return err
 | 
							return err
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	this.memoryCache.Write(hash, zero.Zero{}, this.maxExpiresAtForMemoryCache(item.ExpiredAt))
 | 
						this.memoryCache.Write(hash, zero.Zero{}, this.maxExpiresAtForMemoryCache(item.ExpiresAt))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if this.onAdd != nil {
 | 
						if this.onAdd != nil {
 | 
				
			||||||
		this.onAdd(item)
 | 
							this.onAdd(item)
 | 
				
			||||||
@@ -538,7 +538,7 @@ func (this *SQLiteFileList) UpgradeV3(oldDir string, brokenOnError bool) error {
 | 
				
			|||||||
				err = this.Add(hash, &Item{
 | 
									err = this.Add(hash, &Item{
 | 
				
			||||||
					Type:       ItemTypeFile,
 | 
										Type:       ItemTypeFile,
 | 
				
			||||||
					Key:        key,
 | 
										Key:        key,
 | 
				
			||||||
					ExpiredAt:  expiredAt,
 | 
										ExpiresAt:  expiredAt,
 | 
				
			||||||
					StaleAt:    staleAt,
 | 
										StaleAt:    staleAt,
 | 
				
			||||||
					HeaderSize: headerSize,
 | 
										HeaderSize: headerSize,
 | 
				
			||||||
					BodySize:   bodySize,
 | 
										BodySize:   bodySize,
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -61,7 +61,7 @@ func TestFileList_Add(t *testing.T) {
 | 
				
			|||||||
	t.Log("db index:", list.GetDBIndex(hash))
 | 
						t.Log("db index:", list.GetDBIndex(hash))
 | 
				
			||||||
	err = list.Add(hash, &caches.Item{
 | 
						err = list.Add(hash, &caches.Item{
 | 
				
			||||||
		Key:        "123456",
 | 
							Key:        "123456",
 | 
				
			||||||
		ExpiredAt:  time.Now().Unix() + 1,
 | 
							ExpiresAt:  time.Now().Unix() + 1,
 | 
				
			||||||
		HeaderSize: 1,
 | 
							HeaderSize: 1,
 | 
				
			||||||
		MetaSize:   2,
 | 
							MetaSize:   2,
 | 
				
			||||||
		BodySize:   3,
 | 
							BodySize:   3,
 | 
				
			||||||
@@ -100,7 +100,7 @@ func TestFileList_Add_Many(t *testing.T) {
 | 
				
			|||||||
		u := "https://edge.teaos.cn/123456" + strconv.Itoa(i)
 | 
							u := "https://edge.teaos.cn/123456" + strconv.Itoa(i)
 | 
				
			||||||
		_ = list.Add(stringutil.Md5(u), &caches.Item{
 | 
							_ = list.Add(stringutil.Md5(u), &caches.Item{
 | 
				
			||||||
			Key:        u,
 | 
								Key:        u,
 | 
				
			||||||
			ExpiredAt:  time.Now().Unix() + 3600,
 | 
								ExpiresAt:  time.Now().Unix() + 3600,
 | 
				
			||||||
			HeaderSize: 1,
 | 
								HeaderSize: 1,
 | 
				
			||||||
			MetaSize:   2,
 | 
								MetaSize:   2,
 | 
				
			||||||
			BodySize:   3,
 | 
								BodySize:   3,
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -115,7 +115,7 @@ func (this *MemoryList) CleanPrefix(prefix string) error {
 | 
				
			|||||||
	for _, itemMap := range this.itemMaps {
 | 
						for _, itemMap := range this.itemMaps {
 | 
				
			||||||
		for _, item := range itemMap {
 | 
							for _, item := range itemMap {
 | 
				
			||||||
			if strings.HasPrefix(item.Key, prefix) {
 | 
								if strings.HasPrefix(item.Key, prefix) {
 | 
				
			||||||
				item.ExpiredAt = 0
 | 
									item.ExpiresAt = 0
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
@@ -153,7 +153,7 @@ func (this *MemoryList) CleanMatchKey(key string) error {
 | 
				
			|||||||
			if configutils.MatchDomain(host, item.Host) {
 | 
								if configutils.MatchDomain(host, item.Host) {
 | 
				
			||||||
				var itemRequestURI = item.RequestURI()
 | 
									var itemRequestURI = item.RequestURI()
 | 
				
			||||||
				if itemRequestURI == requestURI || strings.HasPrefix(itemRequestURI, requestURI+SuffixAll) {
 | 
									if itemRequestURI == requestURI || strings.HasPrefix(itemRequestURI, requestURI+SuffixAll) {
 | 
				
			||||||
					item.ExpiredAt = 0
 | 
										item.ExpiresAt = 0
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
@@ -189,7 +189,7 @@ func (this *MemoryList) CleanMatchPrefix(prefix string) error {
 | 
				
			|||||||
			if configutils.MatchDomain(host, item.Host) {
 | 
								if configutils.MatchDomain(host, item.Host) {
 | 
				
			||||||
				var itemRequestURI = item.RequestURI()
 | 
									var itemRequestURI = item.RequestURI()
 | 
				
			||||||
				if isRootPath || strings.HasPrefix(itemRequestURI, requestURI) {
 | 
									if isRootPath || strings.HasPrefix(itemRequestURI, requestURI) {
 | 
				
			||||||
					item.ExpiredAt = 0
 | 
										item.ExpiresAt = 0
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -21,17 +21,17 @@ func TestMemoryList_Add(t *testing.T) {
 | 
				
			|||||||
	_ = list.Init()
 | 
						_ = list.Init()
 | 
				
			||||||
	_ = list.Add("a", &caches.Item{
 | 
						_ = list.Add("a", &caches.Item{
 | 
				
			||||||
		Key:        "a1",
 | 
							Key:        "a1",
 | 
				
			||||||
		ExpiredAt:  time.Now().Unix() + 3600,
 | 
							ExpiresAt:  time.Now().Unix() + 3600,
 | 
				
			||||||
		HeaderSize: 1024,
 | 
							HeaderSize: 1024,
 | 
				
			||||||
	})
 | 
						})
 | 
				
			||||||
	_ = list.Add("b", &caches.Item{
 | 
						_ = list.Add("b", &caches.Item{
 | 
				
			||||||
		Key:        "b1",
 | 
							Key:        "b1",
 | 
				
			||||||
		ExpiredAt:  time.Now().Unix() + 3600,
 | 
							ExpiresAt:  time.Now().Unix() + 3600,
 | 
				
			||||||
		HeaderSize: 1024,
 | 
							HeaderSize: 1024,
 | 
				
			||||||
	})
 | 
						})
 | 
				
			||||||
	_ = list.Add("123456", &caches.Item{
 | 
						_ = list.Add("123456", &caches.Item{
 | 
				
			||||||
		Key:        "c1",
 | 
							Key:        "c1",
 | 
				
			||||||
		ExpiredAt:  time.Now().Unix() + 3600,
 | 
							ExpiresAt:  time.Now().Unix() + 3600,
 | 
				
			||||||
		HeaderSize: 1024,
 | 
							HeaderSize: 1024,
 | 
				
			||||||
	})
 | 
						})
 | 
				
			||||||
	t.Log(list.Prefixes())
 | 
						t.Log(list.Prefixes())
 | 
				
			||||||
@@ -44,12 +44,12 @@ func TestMemoryList_Remove(t *testing.T) {
 | 
				
			|||||||
	_ = list.Init()
 | 
						_ = list.Init()
 | 
				
			||||||
	_ = list.Add("a", &caches.Item{
 | 
						_ = list.Add("a", &caches.Item{
 | 
				
			||||||
		Key:        "a1",
 | 
							Key:        "a1",
 | 
				
			||||||
		ExpiredAt:  time.Now().Unix() + 3600,
 | 
							ExpiresAt:  time.Now().Unix() + 3600,
 | 
				
			||||||
		HeaderSize: 1024,
 | 
							HeaderSize: 1024,
 | 
				
			||||||
	})
 | 
						})
 | 
				
			||||||
	_ = list.Add("b", &caches.Item{
 | 
						_ = list.Add("b", &caches.Item{
 | 
				
			||||||
		Key:        "b1",
 | 
							Key:        "b1",
 | 
				
			||||||
		ExpiredAt:  time.Now().Unix() + 3600,
 | 
							ExpiresAt:  time.Now().Unix() + 3600,
 | 
				
			||||||
		HeaderSize: 1024,
 | 
							HeaderSize: 1024,
 | 
				
			||||||
	})
 | 
						})
 | 
				
			||||||
	_ = list.Remove("b")
 | 
						_ = list.Remove("b")
 | 
				
			||||||
@@ -62,22 +62,22 @@ func TestMemoryList_Purge(t *testing.T) {
 | 
				
			|||||||
	_ = list.Init()
 | 
						_ = list.Init()
 | 
				
			||||||
	_ = list.Add("a", &caches.Item{
 | 
						_ = list.Add("a", &caches.Item{
 | 
				
			||||||
		Key:        "a1",
 | 
							Key:        "a1",
 | 
				
			||||||
		ExpiredAt:  time.Now().Unix() + 3600,
 | 
							ExpiresAt:  time.Now().Unix() + 3600,
 | 
				
			||||||
		HeaderSize: 1024,
 | 
							HeaderSize: 1024,
 | 
				
			||||||
	})
 | 
						})
 | 
				
			||||||
	_ = list.Add("b", &caches.Item{
 | 
						_ = list.Add("b", &caches.Item{
 | 
				
			||||||
		Key:        "b1",
 | 
							Key:        "b1",
 | 
				
			||||||
		ExpiredAt:  time.Now().Unix() + 3600,
 | 
							ExpiresAt:  time.Now().Unix() + 3600,
 | 
				
			||||||
		HeaderSize: 1024,
 | 
							HeaderSize: 1024,
 | 
				
			||||||
	})
 | 
						})
 | 
				
			||||||
	_ = list.Add("c", &caches.Item{
 | 
						_ = list.Add("c", &caches.Item{
 | 
				
			||||||
		Key:        "c1",
 | 
							Key:        "c1",
 | 
				
			||||||
		ExpiredAt:  time.Now().Unix() - 3600,
 | 
							ExpiresAt:  time.Now().Unix() - 3600,
 | 
				
			||||||
		HeaderSize: 1024,
 | 
							HeaderSize: 1024,
 | 
				
			||||||
	})
 | 
						})
 | 
				
			||||||
	_ = list.Add("d", &caches.Item{
 | 
						_ = list.Add("d", &caches.Item{
 | 
				
			||||||
		Key:        "d1",
 | 
							Key:        "d1",
 | 
				
			||||||
		ExpiredAt:  time.Now().Unix() - 2,
 | 
							ExpiresAt:  time.Now().Unix() - 2,
 | 
				
			||||||
		HeaderSize: 1024,
 | 
							HeaderSize: 1024,
 | 
				
			||||||
	})
 | 
						})
 | 
				
			||||||
	_, _ = list.Purge(100, func(hash string) error {
 | 
						_, _ = list.Purge(100, func(hash string) error {
 | 
				
			||||||
@@ -109,7 +109,7 @@ func TestMemoryList_Purge_Large_List(t *testing.T) {
 | 
				
			|||||||
	for i := 0; i < count; i++ {
 | 
						for i := 0; i < count; i++ {
 | 
				
			||||||
		_ = list.Add("a"+strconv.Itoa(i), &caches.Item{
 | 
							_ = list.Add("a"+strconv.Itoa(i), &caches.Item{
 | 
				
			||||||
			Key:        "a" + strconv.Itoa(i),
 | 
								Key:        "a" + strconv.Itoa(i),
 | 
				
			||||||
			ExpiredAt:  time.Now().Unix() + int64(rands.Int(0, 24*3600)),
 | 
								ExpiresAt:  time.Now().Unix() + int64(rands.Int(0, 24*3600)),
 | 
				
			||||||
			HeaderSize: 1024,
 | 
								HeaderSize: 1024,
 | 
				
			||||||
		})
 | 
							})
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
@@ -124,22 +124,22 @@ func TestMemoryList_Stat(t *testing.T) {
 | 
				
			|||||||
	_ = list.Init()
 | 
						_ = list.Init()
 | 
				
			||||||
	_ = list.Add("a", &caches.Item{
 | 
						_ = list.Add("a", &caches.Item{
 | 
				
			||||||
		Key:        "a1",
 | 
							Key:        "a1",
 | 
				
			||||||
		ExpiredAt:  time.Now().Unix() + 3600,
 | 
							ExpiresAt:  time.Now().Unix() + 3600,
 | 
				
			||||||
		HeaderSize: 1024,
 | 
							HeaderSize: 1024,
 | 
				
			||||||
	})
 | 
						})
 | 
				
			||||||
	_ = list.Add("b", &caches.Item{
 | 
						_ = list.Add("b", &caches.Item{
 | 
				
			||||||
		Key:        "b1",
 | 
							Key:        "b1",
 | 
				
			||||||
		ExpiredAt:  time.Now().Unix() + 3600,
 | 
							ExpiresAt:  time.Now().Unix() + 3600,
 | 
				
			||||||
		HeaderSize: 1024,
 | 
							HeaderSize: 1024,
 | 
				
			||||||
	})
 | 
						})
 | 
				
			||||||
	_ = list.Add("c", &caches.Item{
 | 
						_ = list.Add("c", &caches.Item{
 | 
				
			||||||
		Key:        "c1",
 | 
							Key:        "c1",
 | 
				
			||||||
		ExpiredAt:  time.Now().Unix(),
 | 
							ExpiresAt:  time.Now().Unix(),
 | 
				
			||||||
		HeaderSize: 1024,
 | 
							HeaderSize: 1024,
 | 
				
			||||||
	})
 | 
						})
 | 
				
			||||||
	_ = list.Add("d", &caches.Item{
 | 
						_ = list.Add("d", &caches.Item{
 | 
				
			||||||
		Key:        "d1",
 | 
							Key:        "d1",
 | 
				
			||||||
		ExpiredAt:  time.Now().Unix() - 2,
 | 
							ExpiresAt:  time.Now().Unix() - 2,
 | 
				
			||||||
		HeaderSize: 1024,
 | 
							HeaderSize: 1024,
 | 
				
			||||||
	})
 | 
						})
 | 
				
			||||||
	result, _ := list.Stat(func(hash string) bool {
 | 
						result, _ := list.Stat(func(hash string) bool {
 | 
				
			||||||
@@ -161,7 +161,7 @@ func TestMemoryList_CleanPrefix(t *testing.T) {
 | 
				
			|||||||
		key := "https://www.teaos.cn/hello/" + strconv.Itoa(i/10000) + "/" + strconv.Itoa(i) + ".html"
 | 
							key := "https://www.teaos.cn/hello/" + strconv.Itoa(i/10000) + "/" + strconv.Itoa(i) + ".html"
 | 
				
			||||||
		_ = list.Add(fmt.Sprintf("%d", xxhash.Sum64String(key)), &caches.Item{
 | 
							_ = list.Add(fmt.Sprintf("%d", xxhash.Sum64String(key)), &caches.Item{
 | 
				
			||||||
			Key:        key,
 | 
								Key:        key,
 | 
				
			||||||
			ExpiredAt:  time.Now().Unix() + 3600,
 | 
								ExpiresAt:  time.Now().Unix() + 3600,
 | 
				
			||||||
			BodySize:   0,
 | 
								BodySize:   0,
 | 
				
			||||||
			HeaderSize: 0,
 | 
								HeaderSize: 0,
 | 
				
			||||||
		})
 | 
							})
 | 
				
			||||||
@@ -278,7 +278,7 @@ func TestMemoryList_GC(t *testing.T) {
 | 
				
			|||||||
		key := "https://www.teaos.cn/hello" + strconv.Itoa(i/100000) + "/" + strconv.Itoa(i) + ".html"
 | 
							key := "https://www.teaos.cn/hello" + strconv.Itoa(i/100000) + "/" + strconv.Itoa(i) + ".html"
 | 
				
			||||||
		_ = list.Add(fmt.Sprintf("%d", xxhash.Sum64String(key)), &caches.Item{
 | 
							_ = list.Add(fmt.Sprintf("%d", xxhash.Sum64String(key)), &caches.Item{
 | 
				
			||||||
			Key:        key,
 | 
								Key:        key,
 | 
				
			||||||
			ExpiredAt:  0,
 | 
								ExpiresAt:  0,
 | 
				
			||||||
			BodySize:   0,
 | 
								BodySize:   0,
 | 
				
			||||||
			HeaderSize: 0,
 | 
								HeaderSize: 0,
 | 
				
			||||||
		})
 | 
							})
 | 
				
			||||||
@@ -308,7 +308,7 @@ func BenchmarkMemoryList(b *testing.B) {
 | 
				
			|||||||
	for i := 0; i < 1_000_000; i++ {
 | 
						for i := 0; i < 1_000_000; i++ {
 | 
				
			||||||
		_ = list.Add(stringutil.Md5(types.String(i)), &caches.Item{
 | 
							_ = list.Add(stringutil.Md5(types.String(i)), &caches.Item{
 | 
				
			||||||
			Key:        "a1",
 | 
								Key:        "a1",
 | 
				
			||||||
			ExpiredAt:  time.Now().Unix() + 3600,
 | 
								ExpiresAt:  time.Now().Unix() + 3600,
 | 
				
			||||||
			HeaderSize: 1024,
 | 
								HeaderSize: 1024,
 | 
				
			||||||
		})
 | 
							})
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1294,7 +1294,7 @@ func (this *FileStorage) hotLoop() {
 | 
				
			|||||||
				Type:       writer.ItemType(),
 | 
									Type:       writer.ItemType(),
 | 
				
			||||||
				Key:        item.Key,
 | 
									Key:        item.Key,
 | 
				
			||||||
				Host:       ParseHost(item.Key),
 | 
									Host:       ParseHost(item.Key),
 | 
				
			||||||
				ExpiredAt:  expiresAt,
 | 
									ExpiresAt:  expiresAt,
 | 
				
			||||||
				HeaderSize: writer.HeaderSize(),
 | 
									HeaderSize: writer.HeaderSize(),
 | 
				
			||||||
				BodySize:   writer.BodySize(),
 | 
									BodySize:   writer.BodySize(),
 | 
				
			||||||
			})
 | 
								})
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -578,7 +578,7 @@ func (this *MemoryStorage) flushItem(key string) {
 | 
				
			|||||||
		Type:       writer.ItemType(),
 | 
							Type:       writer.ItemType(),
 | 
				
			||||||
		Key:        key,
 | 
							Key:        key,
 | 
				
			||||||
		Host:       ParseHost(key),
 | 
							Host:       ParseHost(key),
 | 
				
			||||||
		ExpiredAt:  item.ExpiresAt,
 | 
							ExpiresAt:  item.ExpiresAt,
 | 
				
			||||||
		HeaderSize: writer.HeaderSize(),
 | 
							HeaderSize: writer.HeaderSize(),
 | 
				
			||||||
		BodySize:   writer.BodySize(),
 | 
							BodySize:   writer.BodySize(),
 | 
				
			||||||
	})
 | 
						})
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -157,7 +157,7 @@ func TestMemoryStorage_Stat(t *testing.T) {
 | 
				
			|||||||
		storage.AddToList(&Item{
 | 
							storage.AddToList(&Item{
 | 
				
			||||||
			Key:       "abc",
 | 
								Key:       "abc",
 | 
				
			||||||
			BodySize:  5,
 | 
								BodySize:  5,
 | 
				
			||||||
			ExpiredAt: expiredAt,
 | 
								ExpiresAt: expiredAt,
 | 
				
			||||||
		})
 | 
							})
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
@@ -174,7 +174,7 @@ func TestMemoryStorage_Stat(t *testing.T) {
 | 
				
			|||||||
		storage.AddToList(&Item{
 | 
							storage.AddToList(&Item{
 | 
				
			||||||
			Key:       "abc1",
 | 
								Key:       "abc1",
 | 
				
			||||||
			BodySize:  5,
 | 
								BodySize:  5,
 | 
				
			||||||
			ExpiredAt: expiredAt,
 | 
								ExpiresAt: expiredAt,
 | 
				
			||||||
		})
 | 
							})
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	stat, err := storage.Stat()
 | 
						stat, err := storage.Stat()
 | 
				
			||||||
@@ -201,7 +201,7 @@ func TestMemoryStorage_CleanAll(t *testing.T) {
 | 
				
			|||||||
		storage.AddToList(&Item{
 | 
							storage.AddToList(&Item{
 | 
				
			||||||
			Key:       "abc",
 | 
								Key:       "abc",
 | 
				
			||||||
			BodySize:  5,
 | 
								BodySize:  5,
 | 
				
			||||||
			ExpiredAt: expiredAt,
 | 
								ExpiresAt: expiredAt,
 | 
				
			||||||
		})
 | 
							})
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
@@ -217,7 +217,7 @@ func TestMemoryStorage_CleanAll(t *testing.T) {
 | 
				
			|||||||
		storage.AddToList(&Item{
 | 
							storage.AddToList(&Item{
 | 
				
			||||||
			Key:       "abc1",
 | 
								Key:       "abc1",
 | 
				
			||||||
			BodySize:  5,
 | 
								BodySize:  5,
 | 
				
			||||||
			ExpiredAt: expiredAt,
 | 
								ExpiresAt: expiredAt,
 | 
				
			||||||
		})
 | 
							})
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	err := storage.CleanAll()
 | 
						err := storage.CleanAll()
 | 
				
			||||||
@@ -244,7 +244,7 @@ func TestMemoryStorage_Purge(t *testing.T) {
 | 
				
			|||||||
		storage.AddToList(&Item{
 | 
							storage.AddToList(&Item{
 | 
				
			||||||
			Key:       "abc",
 | 
								Key:       "abc",
 | 
				
			||||||
			BodySize:  5,
 | 
								BodySize:  5,
 | 
				
			||||||
			ExpiredAt: expiredAt,
 | 
								ExpiresAt: expiredAt,
 | 
				
			||||||
		})
 | 
							})
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
@@ -260,7 +260,7 @@ func TestMemoryStorage_Purge(t *testing.T) {
 | 
				
			|||||||
		storage.AddToList(&Item{
 | 
							storage.AddToList(&Item{
 | 
				
			||||||
			Key:       "abc1",
 | 
								Key:       "abc1",
 | 
				
			||||||
			BodySize:  5,
 | 
								BodySize:  5,
 | 
				
			||||||
			ExpiredAt: expiredAt,
 | 
								ExpiresAt: expiredAt,
 | 
				
			||||||
		})
 | 
							})
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	err := storage.Purge([]string{"abc", "abc1"}, "")
 | 
						err := storage.Purge([]string{"abc", "abc1"}, "")
 | 
				
			||||||
@@ -299,7 +299,7 @@ func TestMemoryStorage_Expire(t *testing.T) {
 | 
				
			|||||||
		storage.AddToList(&Item{
 | 
							storage.AddToList(&Item{
 | 
				
			||||||
			Key:       key,
 | 
								Key:       key,
 | 
				
			||||||
			BodySize:  5,
 | 
								BodySize:  5,
 | 
				
			||||||
			ExpiredAt: expiredAt,
 | 
								ExpiresAt: expiredAt,
 | 
				
			||||||
		})
 | 
							})
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	time.Sleep(70 * time.Second)
 | 
						time.Sleep(70 * time.Second)
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user