memory

package
v0.5.0 Latest Latest
Warning

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

Go to latest
Published: Jan 12, 2024 License: MIT Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func BindAction

func BindAction[Func any](name string, handler Func) Func

BindAction 绑定需要缓存的操作函数

  • name 缓存操作名称
  • handler 缓存操作处理函数

注意事项:

  • 关于持久化缓存程序的绑定请参考 BindPersistCacheProgram
  • handler 函数的返回值将被作为缓存目标,如果返回值为非指针类型,将可能会发生意外的情况
  • 当传入的 handler 没有任何返回值时,将不会被缓存,并且不会占用缓存操作名称

使用场景:

  • 例如在游戏中,需要根据玩家 ID 查询玩家信息,可以使用该函数进行绑定,当查询玩家信息时,如果缓存中存在该玩家信息,将直接返回缓存中的数据,否则将执行 handler 函数进行查询并缓存

func BindPersistCacheProgram

func BindPersistCacheProgram[OutputParamHandlerFunc any](name string, handler OutputParamHandlerFunc, option ...*Option) func()

BindPersistCacheProgram 绑定持久化缓存程序

  • name 持久化缓存程序名称
  • handler 持久化缓存程序处理函数
  • option 持久化缓存程序选项

注意事项:

  • 持久化程序建议声明为全局变量进行使用
  • 持久化程序处理函数参数类型必须与绑定的缓存程序输出参数类型一致,并且相同 name 的持久化程序必须在 BindAction 之后进行绑定
  • 默认情况下只有执行该函数返回的函数才会进行持久化,如果需要持久化策略,可以设置 option 参数或者自行实现策略调用返回的函数
  • 所有持久化程序绑定完成后,应该主动调用 Run 函数运行

func Run

func Run()

Run 运行持久化缓存程序

Types

type Option

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

func NewOption

func NewOption() *Option

func (*Option) WithPeriodicity

func (slf *Option) WithPeriodicity(ticker *timer.Ticker, firstDelay, interval, delay time.Duration) *Option

WithPeriodicity 设置持久化周期

  • ticker 定时器,通常建议使用服务器的定时器,这样可以降低多线程的程序复杂性
  • firstDelay 首次持久化延迟,当首次持久化为 0 时,将会在下一个持久化周期开始时持久化
  • interval 持久化间隔
  • delay 每条数据持久化间隔,适当的设置该值可以使持久化期间尽量降低对用户体验的影响,如果为0,将会一次性持久化所有数据

Jump to

Keyboard shortcuts

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