Ai
1 Star 0 Fork 0

墨城/async_task_demon

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
async_task_manager_interface.go 5.21 KB
一键复制 编辑 原始数据 按行查看 历史
墨城 提交于 2023-11-21 15:52 +08:00 . 写库时限链接数只能是xorm
package async_task_manager
// AsyncTaskManagerInterface 异步任务管理器通用接口,几个Set方法尽量保证在Start()之前有效
type AsyncTaskManagerInterface interface {
Start() // 开始
Stop() // 停止
SetWaitListMaxLength(l int) // 设置等待队列的最大长度,默认:1000
SetWorkPoolSize(s int) // 设置并行的数量,默认:100
AddAsyncTask(t AsyncTaskInterface, h AsyncTaskHandle, cb ...AsyncTaskCallBack) error // 增加一个异步任务
SetFinishCallBack(f func(*TaskManagerResult)) // 设置任务完成的回调,定长任务有效
CheckTaskInWork(tag string) (bool, error) // 查验任务是否在执行
GetWaitLength() int // 获取当前等待队列长度
GetWorkerLength() int // 获取当前工作队列长度
GetManagerStatus() uint8 // 获取管理器状态
SetTaskMaxLength(s int) // 设置最大任务数
SetProgressCallBack(p int, cb ProgressCallBack) // 设置进度回调,定长任务有效
}
type AsyncTaskInterface interface {
GetTag() *TaskTag // 任务全局唯一标识
SetStartUnix(end int64) // 设置任务开始时间
GetStartUnix() int64 // 获取任务开始时间
SetEndUnix(end int64) // 设置任务结束时间
GetEndUnix() int64 // 获取任务结束时间
SetStatus(s uint8) // 设置当前任务状态
GetStatus() uint8 // 获取当前任务状态
SetError(e error)
GetError() error
}
type AsyncTaskHandle interface {
Start(AsyncTaskInterface) // 开始执行任务
Stop() // 结束任务,然后拉起回调,返回enmu.UserStopError
SetHandleCallBack(f AsyncTaskCallBack) // 配置执行的回调
}
// AsyncTaskCallBack 异步任务回调
type AsyncTaskCallBack func(AsyncTaskInterface)
// TaskManagerResult 任务管理器执行结果
type TaskManagerResult struct {
StartTime int64
EndTime int64
Length uint64
TagsMap map[string]AsyncTaskInterface
Status uint8
}
// ProgressCallBack 进度回调
type ProgressCallBack func(*TaskProgress)
// TaskProgress 进度信息
type TaskProgress struct {
WorkNum int // 任务并行数
AllTaskNum int // 总任务数,如果没有SetTaskMaxLength(),返回0
Progress int // 当前完成个数
ParentTime int64 // 上次进度回调的时间
}
// OneToManyTaskInterface 一对多异步任务通用接口
type OneToManyTaskInterface interface {
AsyncTaskInterface
SetTaskTag(tag *TaskTag)
GetHandleTag() *TaskTag
SetHandleTag(tag *TaskTag)
GetHandleResult() interface{}
SetHandleResult(res interface{})
Copy() OneToManyTaskInterface
}
// OneToManyTaskHandleInterface 一对多异步任务Handle通用接口
type OneToManyTaskHandleInterface interface {
Start(AsyncTaskInterface) // 开始执行任务
Stop() // 结束任务,然后拉起回调,返回enmu.UserStopError
SetHandleCallBack(f AsyncTaskCallBack) // 配置执行的回调
GetTarget() *TaskTag // 同一任务中唯一
}
// OneToManyTaskManagerInterface 一对多异步任务管理通用接口
type OneToManyTaskManagerInterface interface {
Start() // 开始
Stop() // 停止
SetWaitListMaxLength(l int) // 设置等待队列的最大长度,默认:1000
SetWorkPoolSize(s int) // 设置并行的数量,默认:100
AddAsyncTask(t OneToManyTaskInterface, cb func(res *OneToManyTaskResult), handles ...OneToManyTaskHandleInterface) error // 增加一个异步任务
CheckTaskInWork(tag string) (bool, error) // 查验任务是否在执行
GetWaitLength() int // 获取当前等待队列长度
GetWorkerLength() int // 获取当前工作队列长度
GetManagerStatus() uint8 // 获取管理器状态
}
// OneToManyTaskResult 一对多异步任务 执行结果
type OneToManyTaskResult struct {
StartTime int64
EndTime int64
Status uint8
Task OneToManyTaskInterface
ResultMap map[string]interface{}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/qdmc/async_task_demon.git
git@gitee.com:qdmc/async_task_demon.git
qdmc
async_task_demon
async_task_demon
v1.0.0

搜索帮助