优化命名
This commit is contained in:
@@ -1,5 +1,3 @@
|
|||||||
// Package task 提供任务队列和执行框架
|
|
||||||
// 负责管理任务队列、调度和执行各种控制任务
|
|
||||||
package task
|
package task
|
||||||
|
|
||||||
import (
|
import (
|
||||||
@@ -34,8 +32,8 @@ type taskItem struct {
|
|||||||
index int
|
index int
|
||||||
}
|
}
|
||||||
|
|
||||||
// TaskQueue 代表任务队列
|
// Queue 代表任务队列
|
||||||
type TaskQueue struct {
|
type Queue struct {
|
||||||
// queue 任务队列(按优先级排序)
|
// queue 任务队列(按优先级排序)
|
||||||
queue *priorityQueue
|
queue *priorityQueue
|
||||||
|
|
||||||
@@ -46,50 +44,50 @@ type TaskQueue struct {
|
|||||||
logger *logs.Logger
|
logger *logs.Logger
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewTaskQueue 创建并返回一个新的任务队列实例。
|
// NewQueue 创建并返回一个新的任务队列实例。
|
||||||
func NewTaskQueue(logger *logs.Logger) *TaskQueue {
|
func NewQueue(logger *logs.Logger) *Queue {
|
||||||
pq := make(priorityQueue, 0)
|
pq := make(priorityQueue, 0)
|
||||||
heap.Init(&pq)
|
heap.Init(&pq)
|
||||||
|
|
||||||
return &TaskQueue{
|
return &Queue{
|
||||||
queue: &pq,
|
queue: &pq,
|
||||||
logger: logger,
|
logger: logger,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// AddTask 向队列中添加任务
|
// AddTask 向队列中添加任务
|
||||||
func (tq *TaskQueue) AddTask(task Task) {
|
func (q *Queue) AddTask(task Task) {
|
||||||
tq.mutex.Lock()
|
q.mutex.Lock()
|
||||||
defer tq.mutex.Unlock()
|
defer q.mutex.Unlock()
|
||||||
|
|
||||||
item := &taskItem{
|
item := &taskItem{
|
||||||
task: task,
|
task: task,
|
||||||
priority: task.GetPriority(),
|
priority: task.GetPriority(),
|
||||||
}
|
}
|
||||||
heap.Push(tq.queue, item)
|
heap.Push(q.queue, item)
|
||||||
tq.logger.Infow("任务已添加到队列", "任务ID", task.GetID())
|
q.logger.Infow("任务已添加到队列", "任务ID", task.GetID())
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetNextTask 获取下一个要执行的任务(优先级最高的任务)
|
// GetNextTask 获取下一个要执行的任务(优先级最高的任务)
|
||||||
func (tq *TaskQueue) GetNextTask() Task {
|
func (q *Queue) GetNextTask() Task {
|
||||||
tq.mutex.Lock()
|
q.mutex.Lock()
|
||||||
defer tq.mutex.Unlock()
|
defer q.mutex.Unlock()
|
||||||
|
|
||||||
if tq.queue.Len() == 0 {
|
if q.queue.Len() == 0 {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
item := heap.Pop(tq.queue).(*taskItem)
|
item := heap.Pop(q.queue).(*taskItem)
|
||||||
tq.logger.Infow("从队列中获取任务", "任务ID", item.task.GetID())
|
q.logger.Infow("从队列中获取任务", "任务ID", item.task.GetID())
|
||||||
return item.task
|
return item.task
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetTaskCount 获取队列中的任务数量
|
// GetTaskCount 获取队列中的任务数量
|
||||||
func (tq *TaskQueue) GetTaskCount() int {
|
func (q *Queue) GetTaskCount() int {
|
||||||
tq.mutex.Lock()
|
q.mutex.Lock()
|
||||||
defer tq.mutex.Unlock()
|
defer q.mutex.Unlock()
|
||||||
|
|
||||||
return tq.queue.Len()
|
return q.queue.Len()
|
||||||
}
|
}
|
||||||
|
|
||||||
// priorityQueue 实现优先级队列
|
// priorityQueue 实现优先级队列
|
||||||
@@ -126,8 +124,8 @@ func (pq *priorityQueue) Pop() interface{} {
|
|||||||
|
|
||||||
// Executor 代表任务执行器
|
// Executor 代表任务执行器
|
||||||
type Executor struct {
|
type Executor struct {
|
||||||
// taskQueue 任务队列
|
// queue 任务队列
|
||||||
taskQueue *TaskQueue
|
queue *Queue
|
||||||
|
|
||||||
// workers 工作协程数量
|
// workers 工作协程数量
|
||||||
workers int
|
workers int
|
||||||
@@ -150,11 +148,11 @@ func NewExecutor(workers int, logger *logs.Logger) *Executor {
|
|||||||
ctx, cancel := context.WithCancel(context.Background())
|
ctx, cancel := context.WithCancel(context.Background())
|
||||||
|
|
||||||
return &Executor{
|
return &Executor{
|
||||||
taskQueue: NewTaskQueue(logger), // 将 logger 传递给 TaskQueue
|
queue: NewQueue(logger), // 将 logger 传递给 Queue
|
||||||
workers: workers,
|
workers: workers,
|
||||||
ctx: ctx,
|
ctx: ctx,
|
||||||
cancel: cancel,
|
cancel: cancel,
|
||||||
logger: logger,
|
logger: logger,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -186,7 +184,7 @@ func (e *Executor) Stop() {
|
|||||||
|
|
||||||
// SubmitTask 提交任务到执行器
|
// SubmitTask 提交任务到执行器
|
||||||
func (e *Executor) SubmitTask(task Task) {
|
func (e *Executor) SubmitTask(task Task) {
|
||||||
e.taskQueue.AddTask(task)
|
e.queue.AddTask(task)
|
||||||
e.logger.Infow("任务已提交", "任务ID", task.GetID())
|
e.logger.Infow("任务已提交", "任务ID", task.GetID())
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -203,7 +201,7 @@ func (e *Executor) worker(id int) {
|
|||||||
return
|
return
|
||||||
default:
|
default:
|
||||||
// 获取下一个任务
|
// 获取下一个任务
|
||||||
task := e.taskQueue.GetNextTask()
|
task := e.queue.GetNextTask()
|
||||||
if task != nil {
|
if task != nil {
|
||||||
e.logger.Infow("工作协程正在执行任务", "工作协程ID", id, "任务ID", task.GetID())
|
e.logger.Infow("工作协程正在执行任务", "工作协程ID", id, "任务ID", task.GetID())
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user