storage_lock_factory

package module
v0.0.2 Latest Latest
Warning

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

Go to latest
Published: Aug 30, 2023 License: MIT Imports: 5 Imported by: 14

README

Storage Lock Factory

一、这是什么

把Storage Lock的创建过程工厂化

二、安装依赖

go get -u github.com/storage-lock/go-storage-lock-factory

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Bean added in v0.0.2

type Bean[Connection any] struct {
	Factory *StorageLockFactory[Connection]
	Err     error
}

Bean 存储在Bean工厂中的Bean,用于对同一个key对应的StorageLockFactory做单例

type InitFunc added in v0.0.2

type InitFunc[Connection any] func(ctx context.Context) (*StorageLockFactory[Connection], error)

InitFunc 用于初始化StorageLockFactory的函数,参数自己闭包,参数传递不放在这个函数的签名中

type StorageLockFactory

type StorageLockFactory[Connection any] struct {
	Storage           storage.Storage
	ConnectionManager storage.ConnectionManager[Connection]
}

StorageLockFactory 锁的工厂,锁底层是有一些资源需要管理的,这些资源可能会被多次重复使用和不使用时的资源销毁等,这个Factory就是用来管理这个的

func NewStorageLockFactory

func NewStorageLockFactory[Connection any](storage storage.Storage, manager storage.ConnectionManager[Connection]) *StorageLockFactory[Connection]

func (*StorageLockFactory[Connection]) CreateLock

func (x *StorageLockFactory[Connection]) CreateLock(lockId string) (*storage_lock.StorageLock, error)

func (*StorageLockFactory[Connection]) CreateLockWithOptions

func (x *StorageLockFactory[Connection]) CreateLockWithOptions(options *storage_lock.StorageLockOptions) (*storage_lock.StorageLock, error)

func (*StorageLockFactory[Connection]) Shutdown

func (x *StorageLockFactory[Connection]) Shutdown(ctx context.Context) error

type StorageLockFactoryBeanFactory added in v0.0.2

type StorageLockFactoryBeanFactory[Key comparable, Connection any] struct {
	// contains filtered or unexported fields
}

StorageLockFactoryBeanFactory 用于存储管理StorageLockFactory的BeanFactory

func NewStorageLockFactoryBeanFactory added in v0.0.2

func NewStorageLockFactoryBeanFactory[Key comparable, Connection any]() *StorageLockFactoryBeanFactory[Key, Connection]

func (*StorageLockFactoryBeanFactory[Key, Connection]) GetBean added in v0.0.2

func (x *StorageLockFactoryBeanFactory[Key, Connection]) GetBean(key Key) (*Bean[Connection], bool)

GetBean 加读锁尝试根据key读取bean

func (*StorageLockFactoryBeanFactory[Key, Connection]) GetOrInit added in v0.0.2

func (x *StorageLockFactoryBeanFactory[Key, Connection]) GetOrInit(ctx context.Context, key Key, initFunc InitFunc[Connection]) (*StorageLockFactory[Connection], error)

GetOrInit 获取或者初始化StorageLockFactory

func (*StorageLockFactoryBeanFactory[Key, Connection]) InitBean added in v0.0.2

func (x *StorageLockFactoryBeanFactory[Key, Connection]) InitBean(ctx context.Context, key Key, initFunc InitFunc[Connection]) *Bean[Connection]

InitBean 初始化bean

func (*StorageLockFactoryBeanFactory[Key, Connection]) Remove added in v0.0.2

func (x *StorageLockFactoryBeanFactory[Key, Connection]) Remove(key Key) (*StorageLockFactory[Connection], bool)

Remove 从BeanFactory中删除给定key的实例

func (*StorageLockFactoryBeanFactory[Key, Connection]) Shutdown added in v0.0.2

func (x *StorageLockFactoryBeanFactory[Key, Connection]) Shutdown(ctx context.Context, key Key) error

func (*StorageLockFactoryBeanFactory[Key, Connection]) ShutdownAll added in v0.0.2

func (x *StorageLockFactoryBeanFactory[Key, Connection]) ShutdownAll(ctx context.Context) map[Key]error

func (*StorageLockFactoryBeanFactory[Key, Connection]) VisitBeanMap added in v0.0.2

func (x *StorageLockFactoryBeanFactory[Key, Connection]) VisitBeanMap(visitFunc func(beanMap map[Key]*Bean[Connection]))

Jump to

Keyboard shortcuts

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