cache

package module
v0.3.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 8, 2021 License: MIT Imports: 5 Imported by: 0

README

Cache

用于定时或者条件更新数据. 例如: 1.爬虫请求页面时间或者某个值 2.请求某表的内容信息, 减少频繁操作

使用方法

cache := New(func() interface{} {
    resp, _ := gcurl.Execute(`curl "http://httpbin.org/uuid"`)
    return string(resp.Content())
}) // 创建 cache 并添加请求方法. 默认为异步更新. 当到触发条件的时间. 返回值还是上次值. 更新完后再次调用才是最新值. cache.SetBlock 可以用这个函数设置为阻塞. 更新会让更新方法彻底完成后. 返回值.
cache.SetUpdateInterval(time.Millisecond * 50) // 设置更新时间
// cache.Update() 主动更新 
log.Println(cache.Value()) // { "uuid": "fbbea7fc-3a71-4e65-bc18-6642eddf83a7" }
time.Sleep(time.Millisecond * 50)
log.Println(cache.Value()) // { "uuid": "125c0d4d-e598-4b37-b0da-c928d44b703d" }

Documentation

Overview

Package cache 缓存 异步更新

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Cache

type Cache struct {
	// contains filtered or unexported fields
}

Cache 缓存

func New

func New(u UpdateMehtod) *Cache

New 创建一个Cache对象

func (*Cache) SetBlock

func (cache *Cache) SetBlock(is bool)

SetBlock 默认false

func (*Cache) SetOnError

func (cache *Cache) SetOnError(errFunc func(err interface{}))

SetOnError 默认false

func (*Cache) SetUpdateCond

func (cache *Cache) SetUpdateCond(method func() bool)

SetUpdateCond 设置cache更新的条件. 时间间隔更新失效

func (*Cache) SetUpdateInterval

func (cache *Cache) SetUpdateInterval(interval time.Duration)

SetUpdateInterval 设置cache更新的条件. 时间间隔更新. SetUpdateCond会失效. Cond也能完成所有更新方式

func (*Cache) SetUpdateMethod

func (cache *Cache) SetUpdateMethod(method UpdateMehtod)

SetUpdateMethod 设置cache更新方法

func (*Cache) Update

func (cache *Cache) Update()

Update 主动更新

func (*Cache) Value

func (cache *Cache) Value() interface{}

Value 获取缓存的值

type UpdateMehtod

type UpdateMehtod func() interface{}

UpdateMehtod 更新方法

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL