task

package
v0.1.1 Latest Latest
Warning

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

Go to latest
Published: Apr 12, 2026 License: MIT Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type PriorityQueue

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

func (*PriorityQueue) GetPosition

func (pq *PriorityQueue) GetPosition(taskID string) int

func (*PriorityQueue) Len

func (pq *PriorityQueue) Len() int

func (*PriorityQueue) Pop

func (pq *PriorityQueue) Pop() any

Pop 返回原始任务

func (*PriorityQueue) Push

func (pq *PriorityQueue) Push(task any, priority int, taskID string)

Push 存储 taskID + priority + 原始任务

func (*PriorityQueue) Remove

func (pq *PriorityQueue) Remove(taskID string) bool

type Scheduler

type Scheduler[P, R any] struct {
	// contains filtered or unexported fields
}

func NewScheduler

func NewScheduler[P, R any](workerCount int, logger *zap.Logger) *Scheduler[P, R]

func (*Scheduler[P, R]) CancelTaskByID

func (s *Scheduler[P, R]) CancelTaskByID(taskID string) bool

func (*Scheduler[P, R]) GetTaskPosition

func (s *Scheduler[P, R]) GetTaskPosition(taskID string) int

func (*Scheduler[P, R]) QueueLen

func (s *Scheduler[P, R]) QueueLen() int

func (*Scheduler[P, R]) RunningCount

func (s *Scheduler[P, R]) RunningCount() int32

func (*Scheduler[P, R]) SubmitTask

func (s *Scheduler[P, R]) SubmitTask(
	ctx context.Context,
	priority int,
	param P,
	handler func(ctx context.Context, params P) (R, error),
) *Task[P, R]

type Task

type Task[Params, Result any] struct {
	ID string

	Priority   int
	Params     Params
	Handler    func(ctx context.Context, params Params) (Result, error)
	Result     chan Result
	Err        chan error
	Status     atomic.Value
	Progress   atomic.Int32
	SubmitTime time.Time
	// contains filtered or unexported fields
}

type TaskPool

type TaskPool[Param any, Result any] struct {
	// contains filtered or unexported fields
}

func NewTaskPool

func NewTaskPool[Param any, Result any](options *TaskPoolOption) *TaskPool[Param, Result]

func (*TaskPool[P, R]) AddTask

func (tp *TaskPool[P, R]) AddTask(ctx context.Context, param P, handler func(ctx context.Context, p P) (R, error)) (*Task[P, R], error)

func (*TaskPool[P, R]) CancelTask

func (tp *TaskPool[P, R]) CancelTask(task *Task[P, R])

func (*TaskPool[P, R]) QueueLen

func (tp *TaskPool[P, R]) QueueLen() int

func (*TaskPool[P, R]) Running

func (tp *TaskPool[P, R]) Running() int32

func (*TaskPool[P, R]) Wait

func (tp *TaskPool[P, R]) Wait()

func (*TaskPool[P, R]) WorkerCount

func (tp *TaskPool[P, R]) WorkerCount() int

type TaskPoolOption

type TaskPoolOption struct {
	WorkerCount int
	QueueSize   int
	// contains filtered or unexported fields
}

type TaskStatus

type TaskStatus string
const (
	TaskStatusPending TaskStatus = "pending"
	TaskStatusRunning TaskStatus = "running"
	TaskStatusSuccess TaskStatus = "success"
	TaskStatusFailed  TaskStatus = "failed"
	TaskStatusCancel  TaskStatus = "canceled"
)

func (TaskStatus) ToString

func (ts TaskStatus) ToString() string

Jump to

Keyboard shortcuts

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