worker

package
v1.0.3 Latest Latest
Warning

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

Go to latest
Published: Jul 7, 2026 License: MIT Imports: 19 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func StartAsyncWorkers

func StartAsyncWorkers(
	ctx context.Context,
	worker *AsyncWorker,
	n int,
)

func StartAwaitPollWorkers

func StartAwaitPollWorkers(ctx context.Context, worker *AwaitPollWorker, n int)

Types

type AsyncEmitter

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

func (*AsyncEmitter) EmitToolEvent

func (e *AsyncEmitter) EmitToolEvent(event tool.ToolEvent)

type AsyncWorker

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

AsyncWorker 异步节点事件调度器

func NewAsyncWorker

func NewAsyncWorker(
	queue engine.AsyncJobQueue,
	taskRepo repository.TaskRepository,
	nodeRuntimeRepo repository.NodeRuntimeRepository,
	tools *tool.Registry,
	eventBus *eventbus.EventBus,
) *AsyncWorker

func (*AsyncWorker) Start

func (w *AsyncWorker) Start(ctx context.Context, consumer string)

type AwaitPollWorker

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

func NewAwaitPollWorker

func NewAwaitPollWorker(
	awaitBindingRepo repository.AwaitBindingRepository,
	tools *tool.Registry,
	completer awaitCompleter,
	eventBus *eventbus.EventBus,
	dLocker lock.DistributedLock,
) *AwaitPollWorker

func (*AwaitPollWorker) RunOnce

func (w *AwaitPollWorker) RunOnce(ctx context.Context) (int, error)

func (*AwaitPollWorker) Start

func (w *AwaitPollWorker) Start(ctx context.Context)

type RecoveryScanner

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

RecoveryScanner 数据库级恢复扫描器 Recovery Scanner(数据库级恢复扫描器)

负责:

  1. 扫描 DB 中 status = running 的任务
  2. 找出其中 node_state = running 的节点
  3. 把它们改为 retrying
  4. 把任务重新 push 进队列
  5. 保证不会重复恢复

func NewRecoveryScanner

func NewRecoveryScanner(
	taskRepo repository.TaskRepository,
	nodeRepo repository.NodeRuntimeRepository,
	retryService engine.TaskRetryService,
	eventBus *eventbus.EventBus,
	interval time.Duration,
	timeout time.Duration,
) *RecoveryScanner

func (*RecoveryScanner) Start

func (r *RecoveryScanner) Start(ctx context.Context)

type Worker

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

func NewWorker

func NewWorker(
	eng *engine.Engine,
	taskRepo repository.TaskRepository,
	nodeRunTimeRepo repository.NodeRuntimeRepository,
	workflowVersionRepo repository.WorkflowVersionRepository,
	workflowRepo repository.WorkflowRepository,
	queue repository.TaskQueue,
	asyncJobQueue engine.AsyncJobQueue,
	eventBus *eventbus.EventBus,
	nodeRegistry *nodes.NodeRegistry,
	dLocker lock.DistributedLock,
	builder *workflow.Builder,
	taskRetryService engine.TaskRetryService,
) *Worker

func (*Worker) Loop

func (w *Worker) Loop(ctx context.Context)

func (*Worker) StartRecoveryScanner

func (w *Worker) StartRecoveryScanner(ctx context.Context)

StartRecoveryScanner 启动数据库级恢复扫描器(后台 goroutine,ctx 取消时退出)。 由调用方显式启动,NewWorker 不再隐式拉起。

Jump to

Keyboard shortcuts

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