task

package
v0.1.1 Latest Latest
Warning

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

Go to latest
Published: Jul 30, 2026 License: MIT Imports: 6 Imported by: 0

Documentation

Overview

Package task 提供模块无关的任务注册、执行和 Cron 调度能力。

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ContextTaskExec

type ContextTaskExec interface {
	ExecContext(context.Context, map[string]string) ([]string, error)
}

ContextTaskExec 定义可以接收应用上下文的任务执行接口。

type Observer

type Observer interface {
	Observe(Result)
}

Observer 接收任务执行结果,业务日志和指标通过适配器实现。

type ObserverFunc

type ObserverFunc func(Result)

ObserverFunc 将函数适配为任务执行观察器。

func (ObserverFunc) Observe

func (f ObserverFunc) Observe(result Result)

Observe 接收任务执行结果。

type Registry

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

Registry 保存已装配模块贡献的任务执行器。

func NewRegistry

func NewRegistry() *Registry

NewRegistry 创建空的任务注册表。

func (*Registry) Lookup

func (r *Registry) Lookup(name string) (TaskExec, bool)

Lookup 按名称查询已注册的任务执行器。

func (*Registry) Register

func (r *Registry) Register(tasks ...Task) error

Register 注册一组具名任务,并拒绝重复或不完整的任务贡献。

func (*Registry) Scheduled

func (r *Registry) Scheduled() bool

Scheduled 判断注册表是否包含自动调度任务。

func (*Registry) Tasks

func (r *Registry) Tasks() []Task

Tasks 返回按注册顺序排列的任务快照。

type Result

type Result struct {
	// Name 是任务名称。
	Name string
	// StartedAt 是任务开始时间。
	StartedAt time.Time
	// Duration 是任务执行耗时。
	Duration time.Duration
	// Output 是任务输出。
	Output []string
	// Err 是任务执行错误。
	Err error
}

Result 描述一次任务执行结果。

type Scheduler

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

Scheduler 将具备 Cron 表达式的任务接入 Kratos 服务生命周期。

func NewScheduler

func NewScheduler(registry *Registry, observer Observer) (*Scheduler, error)

NewScheduler 创建任务调度服务,并在启动前注册全部静态调度项。

func (*Scheduler) Run

func (s *Scheduler) Run(ctx context.Context, name string, args map[string]string) (output []string, err error)

Run 立即执行指定任务,并将结果交给观察器。

func (*Scheduler) Start

func (s *Scheduler) Start(ctx context.Context) error

Start 启动 Cron 调度服务。

func (*Scheduler) Stop

func (s *Scheduler) Stop(ctx context.Context) error

Stop 停止 Cron 调度服务并等待正在执行的任务结束。

type Task

type Task struct {
	// Name 是任务的稳定唯一名称。
	Name string
	// Expression 是可选的 Cron 表达式,空值表示仅注册、不自动调度。
	Expression string
	// Args 是自动调度时传递给执行器的参数。
	Args map[string]string
	// Exec 是任务执行器。
	Exec TaskExec
}

Task 表示模块向调度运行时贡献的具名任务。

type TaskExec

type TaskExec interface {
	Exec(arg map[string]string) ([]string, error)
}

TaskExec 定义兼容既有任务实现的执行接口。

Jump to

Keyboard shortcuts

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