expire

package
v0.0.0-...-69d094b Latest Latest
Warning

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

Go to latest
Published: Feb 15, 2024 License: MIT Imports: 5 Imported by: 0

Documentation

Overview

Package expire 实现超时 map

Index

Constants

View Source
const (
	// DefaultExpire 全局默认超时时间, 如果不设置的话, ExpireMap 会使用这个超时时间
	DefaultExpire = 10 * time.Second
)

Variables

This section is empty.

Functions

This section is empty.

Types

type ExpireMap

type ExpireMap[K comparable, V any] struct {
	govet.NoCopy
	// contains filtered or unexported fields
}

ExpireMap 表示一个定时删除的 map

func (*ExpireMap[K, V]) LoadOrNew

func (m *ExpireMap[K, V]) LoadOrNew(key K, opts ...Option[K, V]) (value *V, loaded bool)

LoadOrNew 加载或更新

func (*ExpireMap[K, V]) ResetExpiration

func (m *ExpireMap[K, V]) ResetExpiration(key K, tm time.Duration) (updated bool)

ResetExpiration 重新设置超市时间, 从当前时间重新算起

func (*ExpireMap[K, V]) SetDefaultExpire

func (m *ExpireMap[K, V]) SetDefaultExpire(expire time.Duration)

SetDefaultExpire 设置默认超超时时间, 必须大于零。仅当 default newer 为空时生效

func (*ExpireMap[K, V]) SetDefaultExpireNotifier

func (m *ExpireMap[K, V]) SetDefaultExpireNotifier(notifier ExpireMapNotifier[K, V])

SetDefaultExpireNotifier 设置默认的超时通知

func (*ExpireMap[K, V]) SetDefaultNewer

func (m *ExpireMap[K, V]) SetDefaultNewer(newer ExpireMapNewer[K, V])

SetDefaultNewer 设置默认初始化器

type ExpireMapNewer

type ExpireMapNewer[K comparable, V any] func(K) (*V, time.Duration)

ExpireMapNewer ExpireMap 值初始化器

type ExpireMapNotifier

type ExpireMapNotifier[K comparable, V any] func(K, *V)

ExpireMapNotifier ExpireMap 超时通知器

type Option

type Option[K comparable, V any] func(*options[K, V])

Option 表示额外配置

func WithExpireNotifier

func WithExpireNotifier[K comparable, V any](notifier ExpireMapNotifier[K, V]) Option[K, V]

WithExpireNotifier 覆盖默认的通知器

func WithNewer

func WithNewer[K comparable, V any](newer ExpireMapNewer[K, V]) Option[K, V]

WithNewer 覆盖默认的初始化器

Jump to

Keyboard shortcuts

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