Jsync

package
v0.1.8 Latest Latest
Warning

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

Go to latest
Published: Feb 3, 2023 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type SyncResult

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

SyncResult 实现了在异步操作中进行阻塞, 并等待结果返回的功能 用于tcp, websocket等网络通信中需要等待返回结果的需求, 实现类似于一个http请求的效果

func (*SyncResult) CancelSyncResultWithID

func (sr *SyncResult) CancelSyncResultWithID(uid string) error

CancelSyncResultWithID 立即失效该uuid对应的所有流程, 释放所有方法的阻塞行为, 这将会导致它们返回错误

func (*SyncResult) GetSyncResultWithID

func (sr *SyncResult) GetSyncResultWithID(uid string) (interface{}, error)

GetSyncResultWithID 阻塞调用该方法的goroutine, 直到读取到值或者超时 在调用 NewSyncResultID 后, 需确保调用一次该方法, 否则将可能导致内存泄漏

func (*SyncResult) NewSyncResultID

func (sr *SyncResult) NewSyncResultID(timeout time.Duration) string

NewSyncResultID 为同步等待设置一个超时时间, 同时返回一个uuid, 作为参数传递的标记 设置的超时时间在调用该方法后立即生效, 确保在超时前完成一次同步结果的所有流程, 否则调用其他方法将直接返回错误

func (*SyncResult) SetSyncResultWithID

func (sr *SyncResult) SetSyncResultWithID(uid string, data interface{}) error

SetSyncResultWithID 写入同步数据, 无论该数据是否被读取, 都将立即返回 如果写入参数时已经超时, 将返回错误 确保一个uuid只写入一次数据, 否则可能会阻塞调用该方法的goroutine

Jump to

Keyboard shortcuts

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