Documentation
¶
Index ¶
- Constants
- Variables
- func AwaitTask(other TaskActionImpl) error
- type TaskActionAwaitData
- type TaskActionBase
- func (t *TaskActionBase) AfterYield() error
- func (t *TaskActionBase) AwaitTask(other TaskActionImpl) error
- func (t *TaskActionBase) BeforeYield() error
- func (t *TaskActionBase) ClearAwaitData()
- func (t *TaskActionBase) Finish(result error)
- func (t *TaskActionBase) GetAwaitData() TaskActionAwaitData
- func (t *TaskActionBase) GetTaskId() uint64
- func (t *TaskActionBase) GetTimeoutDuration() time.Duration
- func (t *TaskActionBase) InitOnFinish(fn func(TaskActionImpl, error))
- func (t *TaskActionBase) InitTaskId(id uint64)
- func (t *TaskActionBase) InitTimeoutTimer(timer *time.Timer)
- func (t *TaskActionBase) IsTakenActionGuard() bool
- func (t *TaskActionBase) Kill()
- func (t *TaskActionBase) ResetForReuse()
- func (t *TaskActionBase) Resume(awaitData *TaskActionAwaitData, resumeData *TaskActionResumeData)
- func (t *TaskActionBase) SetAwaitData(awaitData TaskActionAwaitData)
- func (t *TaskActionBase) TimeoutKill()
- func (t *TaskActionBase) Yield() *TaskActionResumeData
- type TaskActionImpl
- type TaskActionManager
- type TaskActionResumeData
Constants ¶
View Source
const ( TaskActionAwaitTypeNone = iota TaskActionAwaitTypeNormal TaskActionAwaitTypeRPC )
Variables ¶
View Source
var ConnectFunc conn.NewConnectFunc = func() (conn.Connection, error) { return websocket.DialWebSocket(Url) }
ConnectFunc, when set, is used by CmdCreateUser and other connection creation points instead of the default conn.DialWebSocket(Url).
View Source
var Url string
Functions ¶
func AwaitTask ¶
func AwaitTask(other TaskActionImpl) error
Types ¶
type TaskActionAwaitData ¶
type TaskActionBase ¶
type TaskActionBase struct {
Impl TaskActionImpl
Name string
TaskId uint64
AwaitData TaskActionAwaitData
AwaitChannel chan *TaskActionResumeData
Timeout *time.Timer
// contains filtered or unexported fields
}
func NewTaskActionBase ¶
func NewTaskActionBase(timeoutDuration time.Duration, name string) *TaskActionBase
func (*TaskActionBase) AfterYield ¶
func (t *TaskActionBase) AfterYield() error
func (*TaskActionBase) AwaitTask ¶
func (t *TaskActionBase) AwaitTask(other TaskActionImpl) error
func (*TaskActionBase) BeforeYield ¶
func (t *TaskActionBase) BeforeYield() error
func (*TaskActionBase) ClearAwaitData ¶ added in v1.1.7
func (t *TaskActionBase) ClearAwaitData()
func (*TaskActionBase) Finish ¶
func (t *TaskActionBase) Finish(result error)
func (*TaskActionBase) GetAwaitData ¶ added in v1.1.7
func (t *TaskActionBase) GetAwaitData() TaskActionAwaitData
func (*TaskActionBase) GetTaskId ¶
func (t *TaskActionBase) GetTaskId() uint64
func (*TaskActionBase) GetTimeoutDuration ¶
func (t *TaskActionBase) GetTimeoutDuration() time.Duration
func (*TaskActionBase) InitOnFinish ¶
func (t *TaskActionBase) InitOnFinish(fn func(TaskActionImpl, error))
func (*TaskActionBase) InitTaskId ¶
func (t *TaskActionBase) InitTaskId(id uint64)
func (*TaskActionBase) InitTimeoutTimer ¶
func (t *TaskActionBase) InitTimeoutTimer(timer *time.Timer)
func (*TaskActionBase) IsTakenActionGuard ¶ added in v1.1.14
func (t *TaskActionBase) IsTakenActionGuard() bool
func (*TaskActionBase) Kill ¶
func (t *TaskActionBase) Kill()
func (*TaskActionBase) ResetForReuse ¶ added in v1.1.7
func (t *TaskActionBase) ResetForReuse()
ResetForReuse 重置任务状态以便复用(不重新分配 AwaitChannel)。 适用于压测场景中的任务对象重用。
func (*TaskActionBase) Resume ¶
func (t *TaskActionBase) Resume(awaitData *TaskActionAwaitData, resumeData *TaskActionResumeData)
func (*TaskActionBase) SetAwaitData ¶ added in v1.1.7
func (t *TaskActionBase) SetAwaitData(awaitData TaskActionAwaitData)
func (*TaskActionBase) TimeoutKill ¶
func (t *TaskActionBase) TimeoutKill()
func (*TaskActionBase) Yield ¶
func (t *TaskActionBase) Yield() *TaskActionResumeData
需要提前 SetAwaitData
type TaskActionImpl ¶
type TaskActionImpl interface {
AwaitTask(TaskActionImpl) error
InitOnFinish(func(TaskActionImpl, error))
GetTaskId() uint64
BeforeYield() error
AfterYield() error
Finish(error)
InitTaskId(uint64)
GetTimeoutDuration() time.Duration
InitTimeoutTimer(*time.Timer)
TimeoutKill()
Kill()
IsTakenActionGuard() bool
Yield() *TaskActionResumeData
Resume(*TaskActionAwaitData, *TaskActionResumeData)
HookRun() error
SetAwaitData(awaitData TaskActionAwaitData)
GetAwaitData() TaskActionAwaitData
ClearAwaitData()
Log(format string, a ...any)
}
type TaskActionManager ¶
type TaskActionManager struct {
// contains filtered or unexported fields
}
func NewTaskActionManager ¶
func NewTaskActionManager() *TaskActionManager
func NewTaskActionManagerWithPool ¶ added in v1.1.7
func NewTaskActionManagerWithPool(poolSize int) *TaskActionManager
NewTaskActionManagerWithPool 创建使用 channel-based 协程池的 TaskActionManager。 poolSize 即 worker 数量和 channel 缓冲大小。
func (*TaskActionManager) CloseAll ¶
func (m *TaskActionManager) CloseAll()
func (*TaskActionManager) OnTaskFinish ¶ added in v1.1.7
func (m *TaskActionManager) OnTaskFinish(taskId uint64)
func (*TaskActionManager) ReleasePool ¶ added in v1.1.7
func (m *TaskActionManager) ReleasePool()
ReleasePool 关闭 worker goroutine。
func (*TaskActionManager) RunTaskAction ¶
func (m *TaskActionManager) RunTaskAction(taskAction TaskActionImpl)
func (*TaskActionManager) WaitAll ¶
func (m *TaskActionManager) WaitAll()
type TaskActionResumeData ¶
type TaskActionResumeData struct {
Err error
Data interface{}
}
Click to show internal directories.
Click to hide internal directories.