taskqueue

package
v0.10.2 Latest Latest
Warning

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

Go to latest
Published: Oct 7, 2021 License: Apache-2.0, MIT Imports: 5 Imported by: 3

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Executor

type Executor interface {
	ExecuteTask(ctx context.Context, pid peer.ID, task *peertask.Task) bool
}

Executor runs a single task on the queue

type TaskQueue

type TaskQueue interface {
	PushTask(p peer.ID, task peertask.Task)
	TaskDone(p peer.ID, task *peertask.Task)
}

type WorkerTaskQueue

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

TaskQueue is a wrapper around peertaskqueue.PeerTaskQueue that manages running workers that pop tasks and execute them

func NewTaskQueue

func NewTaskQueue(ctx context.Context) *WorkerTaskQueue

NewTaskQueue initializes a new queue

func (*WorkerTaskQueue) PushTask

func (tq *WorkerTaskQueue) PushTask(p peer.ID, task peertask.Task)

PushTask pushes a new task on to the queue

func (*WorkerTaskQueue) Shutdown

func (tq *WorkerTaskQueue) Shutdown()

Shutdown shuts down all running workers

func (*WorkerTaskQueue) Startup

func (tq *WorkerTaskQueue) Startup(workerCount uint64, executor Executor)

Startup runs the given number of task workers with the given executor

func (*WorkerTaskQueue) TaskDone

func (tq *WorkerTaskQueue) TaskDone(p peer.ID, task *peertask.Task)

TaskDone marks a task as completed so further tasks can be executed

Jump to

Keyboard shortcuts

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