Documentation
¶
Overview ¶
scheduler/logger.go
scheduler/options.go
scheduler/priority_queue.go
scheduler/task.go
scheduler/worker_pool.go
Index ¶
- type FuncLogger
- type Job
- type JobResult
- type Logger
- type Priority
- type PriorityQueue
- func (pq *PriorityQueue) Dequeue() *Task
- func (pq *PriorityQueue) Enqueue(task *Task)
- func (pq *PriorityQueue) IsEmpty() bool
- func (pq *PriorityQueue) Len() int
- func (pq *PriorityQueue) Less(i, j int) bool
- func (pq *PriorityQueue) Pop() interface{}
- func (pq *PriorityQueue) Push(x interface{})
- func (pq *PriorityQueue) Swap(i, j int)
- type ResourceLimits
- type Task
- type TaskItem
- type TaskOption
- func WithCancelOnFailure(cancel bool) TaskOption
- func WithErrorHandler(handler func(error)) TaskOption
- func WithJob(job func(context.Context) error) TaskOption
- func WithLogger(logger Logger) TaskOption
- func WithLoggerFunc(logFunc func(format string, args ...any)) TaskOption
- func WithMaxCPU(maxCPU int) TaskOption
- func WithMaxExecutionTime(maxTime time.Duration) TaskOption
- func WithMaxMemory(maxMemory int) TaskOption
- func WithMaxRuns(n int) TaskOption
- func WithMetricCollector(collector func(JobResult)) TaskOption
- func WithName(name string) TaskOption
- func WithParallelism(n int) TaskOption
- func WithPostHook(hook func()) TaskOption
- func WithPreHook(hook func()) TaskOption
- func WithPriority(priority Priority) TaskOption
- func WithRecover(hook func(any)) TaskOption
- func WithRepeat(interval time.Duration) TaskOption
- func WithResourceLimits(limits ResourceLimits) TaskOption
- func WithRetry(n int) TaskOption
- func WithStartupDelay(delay time.Duration) TaskOption
- func WithTimeout(timeout time.Duration) TaskOption
- type WorkerPool
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type FuncLogger ¶ added in v0.1.1
type FuncLogger struct {
// contains filtered or unexported fields
}
FuncLogger 是一个适配器,将单一日志函数转换为 Logger 接口 用于兼容旧的日志函数
func (*FuncLogger) Debug ¶ added in v0.1.1
func (l *FuncLogger) Debug(format string, args ...any)
func (*FuncLogger) Error ¶ added in v0.1.1
func (l *FuncLogger) Error(format string, args ...any)
func (*FuncLogger) Info ¶ added in v0.1.1
func (l *FuncLogger) Info(format string, args ...any)
func (*FuncLogger) Warn ¶ added in v0.1.1
func (l *FuncLogger) Warn(format string, args ...any)
type Logger ¶ added in v0.1.1
type Logger interface {
// Debug 记录调试级别的日志
Debug(format string, args ...any)
// Info 记录信息级别的日志
Info(format string, args ...any)
// Warn 记录警告级别的日志
Warn(format string, args ...any)
// Error 记录错误级别的日志
Error(format string, args ...any)
}
Logger 定义了日志接口,支持不同级别的日志记录
func NewFuncLogger ¶ added in v0.1.1
NewFuncLogger 创建一个新的 FuncLogger
type PriorityQueue ¶ added in v0.1.1
type PriorityQueue struct {
// contains filtered or unexported fields
}
PriorityQueue 实现了一个基于优先级的任务队列
func NewPriorityQueue ¶ added in v0.1.1
func NewPriorityQueue() *PriorityQueue
NewPriorityQueue 创建一个新的优先级队列
func (*PriorityQueue) Dequeue ¶ added in v0.1.1
func (pq *PriorityQueue) Dequeue() *Task
Dequeue 从队列中取出最高优先级的任务
func (*PriorityQueue) Enqueue ¶ added in v0.1.1
func (pq *PriorityQueue) Enqueue(task *Task)
Enqueue 将任务添加到队列
func (*PriorityQueue) IsEmpty ¶ added in v0.1.1
func (pq *PriorityQueue) IsEmpty() bool
IsEmpty 检查队列是否为空
func (*PriorityQueue) Less ¶ added in v0.1.1
func (pq *PriorityQueue) Less(i, j int) bool
Less 比较两个任务的优先级 注意:我们希望 Pop 返回最高优先级的任务,所以使用 > 而不是 <
func (*PriorityQueue) Pop ¶ added in v0.1.1
func (pq *PriorityQueue) Pop() interface{}
Pop 从队列中移除并返回最高优先级的任务
func (*PriorityQueue) Push ¶ added in v0.1.1
func (pq *PriorityQueue) Push(x interface{})
Push 添加任务到队列
type ResourceLimits ¶ added in v0.1.1
type ResourceLimits struct {
MaxCPU int // CPU 使用限制(百分比,0-100)
MaxMemory int // 内存使用限制(MB,0表示不限制)
MaxTime time.Duration // 最大执行时间(0表示不限制)
}
ResourceLimits 定义任务资源限制
type TaskItem ¶ added in v0.1.1
type TaskItem struct {
// contains filtered or unexported fields
}
TaskItem 表示优先级队列中的任务项
type TaskOption ¶
type TaskOption func(*Task)
TaskOption 是配置任务的函数类型
func WithCancelOnFailure ¶
func WithCancelOnFailure(cancel bool) TaskOption
WithCancelOnFailure 设置失败时是否取消任务
func WithErrorHandler ¶
func WithErrorHandler(handler func(error)) TaskOption
WithErrorHandler 设置错误处理器
func WithLoggerFunc ¶ added in v0.1.1
func WithLoggerFunc(logFunc func(format string, args ...any)) TaskOption
WithLoggerFunc 使用函数作为日志记录器
func WithMaxExecutionTime ¶ added in v0.1.1
func WithMaxExecutionTime(maxTime time.Duration) TaskOption
WithMaxExecutionTime 设置任务最大执行时间
func WithMaxMemory ¶ added in v0.1.1
func WithMaxMemory(maxMemory int) TaskOption
WithMaxMemory 设置任务内存使用限制
func WithMetricCollector ¶
func WithMetricCollector(collector func(JobResult)) TaskOption
WithMetricCollector 收集任务指标
func WithParallelism ¶
func WithParallelism(n int) TaskOption
WithParallelism 并发执行多个任务(暂不实现并发控制,仅保留字段)
func WithPriority ¶ added in v0.1.1
func WithPriority(priority Priority) TaskOption
WithPriority 设置任务优先级
func WithResourceLimits ¶ added in v0.1.1
func WithResourceLimits(limits ResourceLimits) TaskOption
WithResourceLimits 设置任务资源限制
func WithStartupDelay ¶
func WithStartupDelay(delay time.Duration) TaskOption
WithStartupDelay 设置延迟启动时间
type WorkerPool ¶ added in v0.1.1
type WorkerPool struct {
// contains filtered or unexported fields
}
WorkerPool 管理一组工作协程,限制并发执行的任务数量
func NewWorkerPool ¶ added in v0.1.1
func NewWorkerPool(size int, logger Logger) *WorkerPool
NewWorkerPool 创建一个新的工作池
func (*WorkerPool) Submit ¶ added in v0.1.1
func (wp *WorkerPool) Submit(task *Task)
Submit 提交任务到工作池